我有一个获取带有私有构造函数的静态类实例的方法。 MyStaticClass具有声明的变量,该变量调用私有构造函数。
public class ImplementedClass implements TheInterface<Integer>
{
public ImplementedClass INSTANCE = new ImplementedClass();
private ImplementedClass(){}
//overrides
}
我需要使用泛型从另一个类中获取该类的实例。
Class<? extends TheInterface> myStaticClass = (Class<? extends TheInterface>) Class.forName(bd.getBeanClassName());
如何获取此类的实例?
答案 0 :(得分:0)
我假设您想要一个单例实例。 因此,请将INSTANCE变量设为静态:
public static ImplementedClass INSTANCE = new ImplementedClass();
完成此操作后,您可以:
String classname="ImplementedClass";
Class c=Class.forName(classname);
Field instanceField=c.getDeclaredField("INSTANCE");
TheInterface instance=(TheInterface)instanceField.get(null);