Java 枚举NullPointerException
有人能解释一下原因吗Java 枚举NullPointerException,java,enums,nullpointerexception,Java,Enums,Nullpointerexception,有人能解释一下原因吗 public class Testabut{ enum ThreeColors{RED, BLUE, green; public void woowoo(){ System.out.println("woo");} } ThreeColors color; class Innerclass{ Innerclass(){ color.woowoo();
public class Testabut{
enum ThreeColors{RED, BLUE, green;
public void woowoo(){
System.out.println("woo");}
}
ThreeColors color;
class Innerclass{
Innerclass(){
color.woowoo();
}
}
在调用woooo()时生成空指针异常?
颜色的实例应该是可访问的,不是吗 因为
color
未初始化,其默认值为null
像这样初始化它
ThreeColors color = ThreeColors.RED; //Or any other value
您的
color
变量为空。您必须初始化它才能使用它。您不初始化color
变量。更改为此(或您喜欢的任何颜色):
颜色的实例应该是可访问的,不是吗
没有实例,
color
默认为null
,因为它没有初始化。所有实例变量都用一个值初始化。如果不提供值,将为该变量指定类型的默认值。对于非基本类型,默认值为null
目前,您的代码相当于:
ThreeColors color = null;
所以当你使用它时,你当然会得到一个NPE。相反,请尝试以下方法:
ThreeColors color = ThreeColors.RED;
您必须初始化
颜色
。尝试color=ThreeColors.RED代码>或颜色=三色。蓝色代码>或颜色=三色。绿色代码>
ThreeColors color = ThreeColors.RED;