关于枚举的一个问题
下面有两个文件:
Egg.java
package doItMyself;
public enum Egg {
// the enum constants, which "call" the constructor
jumbo(30.0),
extraLarge(27.0),
large(24.0);
Egg(double w){ //constructor
weight=w;
}
private double weight;
public double getWeight(){
return weight;
}
}
BigEgg.java
package doItMyself;
public class BigEgg {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Egg e=Egg.jumbo;
double wt=e.getWeight();
System.out.println(e+" eggs weight "+wt+" oz. per doz.");
}
}
当运行BigEgg后,出现
Exception in thread "main"
java.lang.NullPointerException at doItMyself.BigEgg.main(BigEgg.java:28),为什么?
------解决方案--------------------我的测试可以通过,可能是你代码没有编译正确吧
另外,Java中的Enum虽然有点复杂,但是我认为是很好用的东西。可以简化一些代码,而且像上述的应用中我还可以getWeight来取得这个Enum不同值所对应的属性
用final double这样没有强制性,我方法a(Egg e)则你很清楚方法的所需要的参数,而a(double e)这样你根本不可能马上知道这个e是什么意思