仿製藥,我有以下方法:的Java 8:創建新的類實例使用反射
public Comparator<T> getComparator() throws ReflectiveOperationException {
String className = "some.ClassName";
Class<Comparator<T>> c = Class.forName(className); // (1)
return (Comparator<T>) c. newInstance();
}
在線路(1)我得到這個錯誤:
Type mismatch: cannot convert from Class <capture#1-of ?> to Class<Comparator<T>>
什麼是錯在這代碼,我應該怎麼做一個Comparator<T>
的實例?
它會工作,但它是一種java2風格的方法。我正在尋找java5風格的。 – Antonio
此外,它會產生警告:類型安全性:取消選中從Class轉換爲Class > –
Antonio
@Antonio,您是什麼意思「java5-style」。 ''Class.forName()'將返回一個'類>'對象,你將**需要將它轉換爲任何你想要的,並確保轉換工作正常...因爲編譯器不能確保字符串「一些.ClassName「是實現」比較器「的類的名稱。 –
Codebender