标签:targe stack trace efault top method 也会 illegal public
1. 普通的饱汉式、饿汉式
package org.bighead.test2;
public class TestPrivate {
private String str = "strPrivate";
private static final TestPrivate TESTPRIVATE = new TestPrivate();
// 饱汉式、饿汉式
private TestPrivate() {
super();
System.out.println(str);
}
public TestPrivate getInstance(){
return TESTPRIVATE;
}
public void toPrint(){
System.out.println("私有构造-公开方法--单实例");
}
}
反射创建实例、调用方法(实例可访问的)
package org.bighead.test2;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class TestDefaultSub {
public static void main(String[] args) {
Class<TestPrivate> clazz = TestPrivate.class;
try {
Constructor<?> constructor = clazz.getDeclaredConstructor();
constructor.setAccessible(true);
TestPrivate tp = (TestPrivate) constructor.newInstance();
tp.toPrint();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch (InvocationTargetException e1) {
e1.printStackTrace();
}
}
}
2. 并发也会影响
java反射(java.lang.reflect) ---普通单例模式唯一性问题
标签:targe stack trace efault top method 也会 illegal public
原文地址:http://www.cnblogs.com/niejianqiang/p/7850900.html