是否可以编写一个可以创建任何指定类型的实例的方法?
我认为Java泛型应有所帮助,因此可能是这样的:
public <U> U getObject(Class klass){
//...
}
有人可以帮我吗?
最佳答案
public <U> U genericFactory(Constructor<U> classConstructor, Object..args)
throws
InstantiationException,
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException {
return classConstructor.newInstance(args);
}
您可以通过
Class<U>
方法从getConstructors
对象获取构造函数。通过构造函数本身,您可以获得有关参数的信息,因此在该工厂之外需要一些额外的代码来适当地填充参数。显然,这和彼得的回答一样丑陋。