下面有两个文件:
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),为什么?

解决方案 »

  1.   

    java的enum一点都不实用,过于复杂了,enum的使用需要表现的象一个类,但是用enum就是为了方便,不然为什么不直接使用一个新类那?java还是伪枚举方便
    final double a = 1;
    final double b = 2;或者你就直接放个内部类进去
      

  2.   

    我的测试可以通过,可能是你代码没有编译正确吧另外,Java中的Enum虽然有点复杂,但是我认为是很好用的东西。可以简化一些代码,而且像上述的应用中我还可以getWeight来取得这个Enum不同值所对应的属性
    用final double这样没有强制性,我方法a(Egg e)则你很清楚方法的所需要的参数,而a(double e)这样你根本不可能马上知道这个e是什么意思
      

  3.   

    java中的枚举本质就是类,而定义的为该枚举类型的对象实例。
    那我想问一下,
    在实际应用中,enum在什么地方比较方便