我想使用從類的字段(使用反射)中獲得的類型實例化一個具有泛型的類。
注:我省略了希望易於閱讀的例外。實例化使用另一個類的字段類型的參數化類
public class AClass {
class BClass<T> {
T aMemba;
}
public void AMethod() {
Class c = Class.forName("com.bla.flipper");
Field f = c.getField("flipIt");
// Here is my difficulty, I want to instantiate BClass with the type of
// field 'f' but the compiler won't let me.
Class typeClass = f.getType();
BClass<typeClass> = new BClass<typeClass>();
}
}
是我想達到的合理性嗎?任何關於如何解決這個問題的想法?
謝謝!
BClass<typeClass> = new BClass<typeClass>();
typeClass
是什麼,編譯器應該意識到:
很多東西都是「合理」 ......大錘是合理的驅動杆到地面,但不作爲蒼蠅拍。所以如果你將一根杆子打入地面,那麼使用大錘是合理的。如果您想基於字段可能更改類型的類的字段類型來實例化類,那麼使用反射是合理的。 – Kiril
如果您想在Java中使用泛型,您現在需要學習**的基本知識**:http://download.oracle.com/javase/tutorial/java/generics/erasure.html –