2011-11-30 60 views
1

的参数类的实例,这可能是显而易见的许多你,但返回使用泛型

我怎么这个(例子)函数转换为使用泛型:

private Object makeNewInstance(Class clazz) throws InstantiationException, IllegalAccessException { 
    return clazz.newInstance(); 
} 

我期待着什么像这样:

private <T> T makeNewInstance(T clazz) throws InstantiationException, IllegalAccessException { 
    return clazz.newInstance(); 
} 

但参数T必须是一个类,并返回TT。

的实例

任何帮助,将不胜感激。

回答

3

更改参数类型Class<T>

private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException { 
    return clazz.newInstance(); 
} 

,了解更多有关Class<T>newInstance()this

此外,根据您的情况,您可以考虑使makeNewInstance()方法静态。

+0

这是真快。谢谢你们。有用 :-) – Benjamin

0
private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException { 
    return clazz.newInstance(); 
} 
0

你的参数应该还是Class类型:

private <T> T makeNewInstance(Class<T> clazz) throws InstantiationException, IllegalAccessException { 
    return clazz.newInstance(); 
}