我正在编写一个Java代码,其中我必须使用2个给定的输入值来计算求和。我在类总和中创建一种方法。该方法的名称为TotalVal。现在,在主类中,我想在Switch Case语句中称呼它。我正在以以下方式描述我的代码 -
首先,我创建了一个具有两个常数值的枚举类
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的值并实现一个Switch Case语句,因此当用户首先选择时,它将为结果乘以NUM值。另一方面,如果用户选择第二,它将给出一个乘以NUM值的结果。但是我在开关案例方法中遇到问题,它显示了null POI异常错误。我在代码中更清楚地描述了它 -
public static void main(String[] args) {
Scanner sc1 =new Scanner(System.in);
Scanner sc2 =new Scanner(System.in);
System.out.println("1tFirst: 400n2tSecond: 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;
}
}
}
查看方法totalval(..(
int sum = mod.getNum()*mod.getProd().getValue();
实际上,我相信您在那里有NPE。mod不应ne ne ne null和mod.getProd返回产品,而不是null。
我看不到您在MD对象的位置。
upd。
您不需要两个扫描仪,只能使用一个扫描仪。
upd.2
我猜而不是
int res=Product.FIRST.getValue()*tot.Sum(md);
你想写
md.setProd(Product.FIRST);
int res = tot.Sum(md);
和在另一个开关案例中类似。