我正在寫一個Java代碼,我必須通過使用2給定的輸入值來計算總和。我在類Sum中創建一個方法。該方法的名稱是totalVal。現在,在主類我希望把它在一個開關的情況下statement.I我描述我的代碼在以下way-調用主類不工作使用Java
起初,我創建了一個枚舉類有兩個恆定值,
public enum Product {
FIRST(400), SECOND(500);
private int value;
private Product(int value){
this.value=value;
}
public int getValue() {
return value;
}
}
現在在模型類中,我調用這個enam類並創建另一個名爲num的值併爲此設置getter和setter。
public class Model {
private Product prod;
private int num;
public Product getProd() {
return prod;
}
public void setProd(Product prod) {
this.produkte = produkte;
}
public int getNum() {
return num;
}
public void setNume(int num) {
this.prod = prod;
}
}
現在我創建另一個類的計算方法
public class Sum{
public int totalVal(Model mod){
int sum = mod.getNum()*mod.getProd().getValue();
return sum;
}
}
現在我想設置NUM的價值,實現開關case語句,這樣,當用戶選擇首先會的主要方法用num值乘以一個結果。另一方面,如果用戶選擇SECOND,它會給出乘以num值的結果。但我在switch case方法有問題,它顯示空poi異常錯誤。我的代碼 - 更清楚地描述它
public static void main(String[] args) {
Scanner sc1 =new Scanner(System.in);
Scanner sc2 =new Scanner(System.in);
System.out.println("1\tFirst: 400\n2\tSecond: 700 ");
System.out.println("Please choose your 1 for Compact and 2 for product");
int swichValue=sc1.nextInt();
Model md=new Model();
System.out.println("enter number");
md.setNum(sc2.nextInt());
switch(swichValue){
case 1:{
Sum tot=new Sum();
int res=Product.FIRST.getValue()*tot.Sum(md); //having problem here I am not sure how to call the method here.
System.out.println("total value is : "+res);
break;
}
case 2:{
int res=Product.SECOND.getValue()*tot.Sum(md);// problem
System.out.println("total value is : "+res);
break;
}
}
}
tot.Sum - > tot.totalVal(mod)和什麼是「mod」?不應該在那裏「md」? – iMysak
@iMysak我已修改。但仍然收到錯誤java.lang.NullPointerException – hina
向我們展示NPE的堆棧跟蹤。它會告訴你它發生了什麼,當試圖找出它時幫助很大...... – AHungerArtist