枚举NullPointerException

时间:2014-04-09 13:38:28

标签: 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();
        }
    }

在调用woowoo()时生成空指针异常? 颜色的实例应该可以到达,不是吗?

7 个答案:

答案 0 :(得分:5)

因为color未初始化且默认值为null

一样初始化它
ThreeColors color = ThreeColors.RED;  //Or any other value

答案 1 :(得分:4)

您的color变量为空。你必须初始化它才能使用它。

答案 2 :(得分:1)

  

颜色的实例应该可以到达,不是吗?

没有实例,color默认为null,因为它未初始化。

答案 3 :(得分:1)

所有实例变量都使用值初始化。如果您未提供值,则会为该变量分配该类型的默认值。对于非基本类型,默认值为null

目前,您的代码相当于:

ThreeColors color = null;

所以当你使用它时,你当然会得到一个NPE。相反,尝试这样的事情:

ThreeColors color = ThreeColors.RED;

答案 4 :(得分:1)

您必须初始化color。试试color = ThreeColors.RED;color = ThreeColors.BLUE;color = ThreeColors.green;

答案 5 :(得分:0)

您没有初始化color变量。

答案 6 :(得分:0)

更改为此(或您喜欢的颜色):

ThreeColors color = ThreeColors.RED;