[英]Generics and inheritance issue in Java
請考慮我的代碼:
class A {
}
class B extends A {
}
class AWrapper<T extends A> {
}
class BWrapper<T extends B> extends AWrapper<T> {
}
所以,我有C extends B
等等, CWrapper<T extends C> extends BWrapper<T>
等等。現在,我這樣使用這些類:
class Test {
private Class<? extends AWrapper<? extends A>> klass;//LINE X
public Test() {
this.klass = BWrapper.class;//LINE Z
}
}
在LINE X
我需要設置不同的類 - AWrapper、BWrapper、CWrapper 等。但是,在LINE Z
我得到一個錯誤。 任何人都可以幫助修復它嗎?
恕我直言,您正在尋找的是:
private Class<? extends AWrapper> klass;
即使AWrapper
是原始的。 至少通過這種方式,您可以說您的參數采用“一個屬於AWrapper
子類型(或自身)的AWrapper
”。 但無論如何,這應該是你關心的事情。 泛型不會在運行時保留,因此無論您在那里擁有什么Class
,它都將沒有其推斷參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.