我想通過Class類型來檢索實例。但現在我正在努力與泛型。我的代碼不起作用,實際上我不知道爲什麼。那就是:用碎create
方法如何正確生成使用Reflection API返回實例的方法?
public class Provider {
private String property;
public Provider(String property) {
this.property = property;
}
public <T> create (Class<T> type) throws Exception {
return type.getConstructor(String.class).newInstance(property);
}
}
public class Main {
public static void main(String[] args) throws Exception {
Provider provider = new Provider("prop");
AbstractHolder obj = provider.create(DefaultHolder.class);
System.out.println(obj.getProperty());
}
}
Provider類下面是我持有人實現了一套。
public class DefaultHolder extends AbstractHolder {
public DefaultHolder(String field) {
super(field);
}
}
和AbstractHolder抽象類。
public abstract class AbstractHolder {
private String property;
public AbstractHolder(String property) {
this.property = property;
}
public String getProperty() {
return property;
}
}
任何想法如何修復我的提供者類中的泛型?
PS
的問題是這種方法
public <T> create (Class<T> type) throws Exception {
return type.getConstructor(String.class).newInstance(property);
}
唯一的問題是,'create'方法的返回類型缺失。使用'公衆 T創建(...)' –
Marco13
是的,謝謝。 – Aaron