How to instantiate by generic type?
本问题已经有最佳答案,请猛点这里访问。
是否可以在抽象类中实例化作为泛型类型参数提供的类?
例子:
1 2 3 4 5 |
是否可以在另一个抽象类中实例化该类?
1 2 3 4 5 | public abstract class AbstractClass<T extends MyClass> { public AbstractClass() { T t = new T("test"); //Cannot instantiate the type T } } |
号
不是那么直接。
您需要一个
然后,必须调用
1 2 3 4 5 | public abstract class AbstractClass<T extends MyClass> { public AbstractClass(Class<T> clazz) { T t = clazz.getDeclaredConstructor(String.class).newInstance("test"); } } |