我做了一个接收类和int的方法。我想知道是否可以以及如何从传递的Class参数创建对象。
public void createObject(Class clazz, int n){
for(int i=0;i<n;i++){
//new object from the clazz
}
}
可以这样做吗?我将创建te对象以在线程中运行。
如何确保Class实现Callable?
编辑:可以用参数调用Construcor吗?
答案 0 :(得分:4)
你的意思是这样吗?
if(Callable.class.isAssignableFrom(clazz)) {
Callable obj = (Callable) clazz.newInstance();
} else if (MyAbstractClass.class.isAssignableFrom(clazz)) {
MyAbstractClass obj = (MyAbstractClass) clazz.newInstance();
} else {
throw new IllegalArgumentException(clazz+" not valid");
}
如果你有一个带参数的构造函数,你可以做
Callable obj = (Callable) clazz.getConstructor(int.class).newInstance(10);
答案 1 :(得分:3)
答案 2 :(得分:1)
if (!Callable.class.isAssignableFrom(clazz)) {
// whatever error condition
}
Callable callable = (Callable) clazz.newInstance();
答案 3 :(得分:0)
这个method将帮助您检查传递的类是否实现接口/扩展类。
答案 4 :(得分:0)