假设我有一个函数,目的是创建任何指定类的新实例,然后返回它。也许是这样的:
public static <T> Class<T> forgeClass(Class<T> classReference) {
return new classReference.getClass();
}
用法(使用 Employee
类):
Employee foo = forgeClass(Employee.class); // new Employee instance
我怎样才能做到这一点?
最佳答案
关键是要用Class.newInstance
;
public static <T> T forge(final Class<T> type)
throws InstantiationException, IllegalAccessException {
return type.newInstance();
}
使用如下...
final Employee employee = forge(Employee.class);
如果您想使用更复杂的初始化例程,例如Employee(String name)
,你应该使用Class.getConstructor
, 其次是 Constructor.newInstance
.
final Constructor ctor = Employee.class.getConstructor(String.class);
final Employee employee = ctor.newInstance("Steve");
关于java - 创建传递的 Class.class 参数的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12341711/