我一直認爲以下應該工作。我得到一個對象,我知道它是Class<X>
,其中X
擴展了一些類Xyz
。爲了使它類型安全我想用Class.asSubclass如以下方法:泛型和Class.asSubclass
private Class<? extends Xyz> castToXyzClass(Object o) {
final Class<?> resultClass = (Class<?>) o;
final Class<? extends Xyz> result = Xyz.class.asSubclass(resultClass);
return result;
}
然而,在Eclipse中這是行不通的,我看到的唯一的解決方案是一個未經檢查的演員。我敢打賭,上面的代碼必須工作,我已經使用過這樣的事情......不知道這裏有什麼問題。
我知道這是非常微不足道的東西.... thx很多。 – maaartinus 2011-05-09 16:35:38
我個人認爲如果它是'resultClass.asSubclassOf(Xyz.class)',它會讀得更好。 – 2011-05-09 16:39:58