我不确定这是否可以在Java中使用。此外,我无法弄清楚要在Google上查询的内容。 无论如何,我想要一个方法,将一个参数作为一个Class(接口或类),方法的返回类型是该类的一个实例。我不想在事后重新制作一个Object。
我不确定此功能是否存在或语法是什么。假设我有一个名为XYZ的类,这是我的伪方法。
private XYZ createInstance(XYZ.class, other args) {
...
// create an instance of XYZ with other args named "_xyz_"
...
return _xyz_;
}
现在假设XYZ是某种通用语法。这在Java中是否可行?谢谢你的帮助。
答案 0 :(得分:7)
private <T> T createInstance(Class<? extends T> c) {
return c.newInstance();
}
答案 1 :(得分:2)
使用钻石操作符:
private <T> T createInstance(Class<T> concreteClass){
return concreteClass.newInstance();
}
//usage
Integer i = instanceWithThatMethod.createInstance(Integer.class);
要传递&#34;参数&#34;,你必须得到与所需参数类型匹配的类的构造函数,并调用该函数的调用,如下所示:
private <T> T createInstance(Class<T> concreteClass, String stringArg){
return concreteClass.getConstructor(String.class).newInstance(stringArg);
}
//usage
SomeClass s = createInstance(SomeClass, "testString");
//equals
SomeClass s = new SomeClass("testString");
//where SomeClass HAS to serve:
public SomeClass(String s){
...
}