【发布时间】:2019-01-30 13:17:51
【问题描述】:
早安,
在类 a 中有一个“类”类型的数据成员,我在构造函数中对其进行了初始化。然后我想创建这个类的对象(实例)。怎么做?
import java.lang.reflect.InvocationTargetException;
public class runMe {
public static void main(String[] args) throws NoSuchMethodException,
InstantiationException, IllegalAccessException, InvocationTargetException {
String testStr = "XXX";
testClass cls = new testClass(testStr.getClass());
cls.createInstance();
}
}
import java.lang.reflect.InvocationTargetException;
public class testClass {
Class<?> myClass;
testClass(Class inputClass) {
this.myClass = inputClass;
}
void createInstance() throws NoSuchMethodException,
InstantiationException, IllegalAccessException, InvocationTargetException {
myClass.getDeclaredConstructor().newInstance(); // this works
//QUESTION, how to do something like this (and return, in this example a String):
myClass anInstance = myClass.getDeclaredConstructor().newInstance();
}
}
【问题讨论】:
-
您的
anInstance变量需要具有正确的类型或最不特定超类的类型,即Object。你需要看看泛型。 -
"Object" 解决了我的问题。也许这是不好的做法,但它有效。