使用Java
反射,即使通过私有构造函数,也可以实例化类的对象。对于Java反射中的构造函数类的线程安全
public class MyClass
{
private MyClass(Object p1, String p2)
{
// Constructor with no modifications to static code
}
}
人能做到(在相同或其他任何类,异常处理为了简化忽略)
public static final Constructor myClass;
static
{
myClass = MyClass.class.getConstructor(Object.class, String.class);
myClass.setAccessible(true);
}
,然后创建的MyClass
新实例像
myClass.newInstance(new Object(), "Test");
是的以上呼吁newInstance()
线程安全,因为myClass
是静态的?
嗯...... Weird.One会假设newInstance()是与实际构造函数一样线程安全的。 – PNS 2013-04-03 21:56:28
好吧,我很同意。但是,与直接调用相比,所涉及的代码量要多得多。 – skirsch 2013-04-04 09:03:19