我尝试使用反射从单例类创建一个类,但它不起作用。 我的SingletonClass看起来像这样。
public class SingletonClass implements IHashBehaviour {
private static SingletonClass singleTon=null;
private SingletonClass () {
// TODO Auto-generated constructor stub
}
public static synchronized SingletonClass newInstance(){
if(singleTon == null){
SingletonClass .singleTon=new SingletonClass ();
}
return singleTon;
}
}
public static SingletonClass create(SingletonClassType type){
SingletonClass obj=null;
Class<?> c;
try {
c = Class.forName(type.getFullQualName());
obj=(SingletonClass)c.newInstance();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
方法getFullQualName返回包,就像这样&#34; model.SingletonClass&#34;。 我理解为什么这不起作用,因为在工厂中,newInstance方法查找默认构造函数,但那个是私有的。我需要从Singletonclass本身调用newInstance方法。