簡體   English   中英

Java中的泛型和繼承問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM