单身人士 - 正确的方式

q09*_*987 5 java singleton

public enum YourSingleton {
    INSTANCE;

    public void doStuff(String stuff) {
        System.out.println("Doing " + stuff);
    }
}

YourSingleton.INSTANCE.doStuff("some stuff");
Run Code Online (Sandbox Code Playgroud)

这是最初的链接, http://electrotek.wordpress.com/2008/08/06/singleton-in-java-the-proper-way/

我在问为什么我们可以在Java中以这种方式调用函数doStuff.

Tra*_*ebb 5

在Java中,enum可以做任何class可以[1].YourSingleton.INSTANCE创建一个实例YourSingleton,然后你可以调用方法,就好像它是一个常规class实例,它基本上是.

有关枚举类型的更深入讨论,请参阅官方Java文档:http://download.oracle.com/javase/tutorial/java/javaOO/enum.html

[1] enum没有实际的继承实现.由于所有enum类型都隐含继承java.lang.Enum而Java不支持多重继承,因此您无法扩展其他任何内容.