在Java中的单例类中创建枚举变量

时间:2016-11-16 07:23:23

标签: java singleton

我有一个单例类,如下所示:

public class GlobalClass
{
    public final int _SUCCESS = 0;    
    private static GlobalClass singleton = new GlobalClass( );

    private GlobalClass(){} //Private constructor for Singleton class.

    public static GlobalClass getInstance()
    {
        return singleton;
    }
}

我想创建一个枚举变量。我无法做到。我写了下面的代码。

public class GlobalClass
{
    enum myEnum {
        _ZERO, _ONE, _TWO
    }
    public final int _SUCCESS = 0;
    //public final int _ONE = 1;

    private static GlobalClass singleton = new GlobalClass( );    
    private GlobalClass(){} //Private constructor for Singleton class.

    public static GlobalClass getInstance()
    {
        return singleton;
    }    
}

以上是什么问题?

1 个答案:

答案 0 :(得分:0)

您只在GlobalClass内声明了枚举(这是一种特殊形式的类)。

您缺少的是将该类型的变量声明为

private myEnum _MY_ENUM_INSTANCE;

此外,我建议您以更有效的方式实现单例模式,如What is an efficient way to implement a singleton pattern in Java?中所述(出于一些非显而易见的原因,也使用枚举。)