How can I implement an abstract singleton class in Java?
Posted
by Simon
on Stack Overflow
See other posts from Stack Overflow
or by Simon
Published on 2010-03-17T00:01:53Z
Indexed on
2010/03/17
0:11 UTC
Read the original article
Hit count: 652
Here is my sample abstract singleton class:
public abstract class A {
protected static A instance;
public static A getInstance() {
return instance;
}
//...rest of my abstract methods...
}
And here is the concrete implementation:
public class B extends A {
private B() { }
static {
instance = new B();
}
//...implementations of my abstract methods...
}
Unfortunately I can't get the static code in class B to execute, so the instance variable never gets set. I have tried this:
Class c = B.class;
A.getInstance() - returns null;
and this
ClassLoader.getSystemClassLoader().loadClass("B");
A.getInstance() - return null;
Running both these in the eclipse debugger the static code never gets executed. The only way I could find to get the static code executed is to change the accessibility on B's constructor to public, and to call it.
I'm using sun-java6-jre on Ubuntu 32bit to run these tests.
© Stack Overflow or respective owner