无法使用反射创建单例类

时间:2014-10-16 15:09:01

标签: java reflection singleton

我尝试使用反射从单例类创建一个类,但它不起作用。 我的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方法。

0 个答案:

没有答案