public abstract class Test {
private Test(){
}
private static abstract class Demo {
private final static Test INSTANCE = new Test() {};
}
public static Test getInstance(){
return Demo.INSTANCE;
}
public void test() {
System.out.println("1111");
}
public static void main(String[] args) {
Test.getInstance().test();
}
}
测试一下:
public static void main(String[] args) {
Test.getInstance().test();
try {
Test test1 = Test.class.newInstance();
System.out.println(test1);
Object test = Class.forName("Test").newInstance();
System.out.println(test);
Object test2 = Class.forName("Test$Demo").newInstance();
System.out.println(test2);
} catch (Exception e) {
e.printStackTrace();
}
}

本文展示了一个使用Java抽象类并实现单例模式的例子。通过定义一个包含静态成员的私有内部抽象类来确保类的唯一实例,并演示了如何通过反射机制尝试创建类的新实例。

507

被折叠的 条评论
为什么被折叠?



