【发布时间】:2017-07-27 12:28:46
【问题描述】:
我想通过定义泛型类的类型来创建一个实例
public abstract class Base<T> {
private final T genericTypeObject;
protected Base(){
//Create instance of T here without any argument
}
}
这样我就可以调用默认构造函数了:
public class Child extends Base<SomeClass>{
public Child () {
super();
}
}
Base-class 实现将为我创建一个 GenericType 的实例。
【问题讨论】:
-
你可能会问XY Problem,所以你最好解释一下你的整体问题,而不是你试图(错误地)解决它的方式。
-
您想要一个“干净”的解决方案,还是对肮脏的、基于反射的 hack 感到满意?我曾经试图做类似的事情,我已经放弃了,但最近我想我已经想通了——虽然它真的很老套。如果这适合你,我可以尝试最终做到这一点。
-
也许你可以同时提供给我 :D 我让其他人的问题很简单。之后我会决定哪个最适合:D
-
这是肮脏的答案: Class
s; public Child(Class s) { this.s = s; } 私有 T getInstance() { 返回 s.newInstance(); } -
“没有任何参数” 为什么你有这个要求?将
T的实例传递给超级构造函数是迄今为止我能想到的最干净的解决方案。