我想通过该方法将 DisplayCard
类中的一些项目添加到 hashMap displayCardMap
中。
hashmap 的输出看起来像
brand: modelNumber: memorySize
然后我创建了一些方法来帮助我。
import java.util.*;
public class ComputerShop {
Map <String, Double> displayCardMap = new HashMap <String, Double>();
public void addDisplayCard(DisplayCard oneDisplayCard){
displayCardMap.put(oneDisplayCard.getBrand() + ": " + oneDisplayCard.getmodelNumber(), oneDisplayCard.getmemorySize());
}
}
public class DisplayCard {
String brand;
String modelNumber;
double memorySize;
//constructor method
public DisplayCard(String brand, String modelNumber, double memorySize){
this.brand = brand;
this.modelNumber = modelNumber;
this.memorySize = memorySize;
}
// getter method
public String getBrand(){
return brand;
}
public String getmodelNumber(){
return modelNumber;
}
public double getmemorySize(){
return memorySize;
}
}
但是在通过 addDisplayCard() 创建新项目后出现错误
public class TestComputerShop{
public static void main(String[] args) {
ComputerShop ashop = new ComputerShop();
// call method
ashop.addDisplayCard("ATI", "R9 390",6.0);
}
}
所以我想知道问题出在哪里。
我应该先创建一个新的 DisplayCard
对象吗?或者函数一开始就是错误的。
最佳答案
您需要创建一个新的 DisplayCard
对象,因为您的方法需要一个:
public class TestComputerShop {
public static void main(String[] args) {
ComputerShop ashop = new ComputerShop();
// call method
ashop.addDisplayCard(new DisplayCard("ATI", "R9 390",6.0));
}
}
另一个解决方案是在 ComputerShop
内使用方法重载:
public class ComputerShop {
Map <String, Double> displayCardMap = new HashMap <String, Double>();
public void addDisplayCard(DisplayCard oneDisplayCard){
displayCardMap.put(oneDisplayCard.getBrand() + ": " + oneDisplayCard.getmodelNumber(), oneDisplayCard.getmemorySize());
}
public void addDisplayCard(String brand, String modelNumber, double memorySize){
this.addDisplayCard(new DisplayCard(brand, modelNumber, memorySize));
}
}
关于java - 如何通过方法将item添加到HashMap中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61170704/