2011-11-30 69 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(); 
}