这对你们很多人来说可能是显而易见的,但
如何将此(示例)函数转换为使用泛型:
private Object makeNewInstance(Class clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
我期待这样的事情:
private <T> T makeNewInstance(T clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
但参数T必须是一个类,并返回T作为T的实例。
任何帮助将不胜感激。
答案 0 :(得分:3)
将参数类型更改为Class<T>
:
private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
有关Class<T>
和newInstance()
。
此外,根据您的上下文,您可以考虑将makeNewInstance()
方法设为静态。
答案 1 :(得分:0)
private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}
答案 2 :(得分:0)
您的参数仍应为Class
类型:
private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException {
return clazz.newInstance();
}