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;