public enum YourSingleton {
INSTANCE;
public void doStuff(String stuff) {
System.out.println("Doing " + stuff);
}
}
YourSingleton.INSTANCE.doStuff("some stuff");
Here is the original link, http://electrotek.wordpress.com/2008/08/06/singleton-in-java-the-proper-way/
I am asking why we can call the function doStuff this way in Java.
In Java, enum
can do everything that class
can [1]. YourSingleton.INSTANCE
creates an instance of YourSingleton
, so you can then invoke methods as if it were a regular class
instance, which it basically is.
See the official Java docs for a more in-depth discussion on Enum Types: http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
[1] enum
does not have a practical implementation of inheritance. Since all enum
types implicity inherit java.lang.Enum
and Java does not support multiple inheritance, you cannot extend anything else.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With