簡體   English   中英

如何覆蓋具有泛型類型的方法

[英]How to override a method with generic type

我需要重寫一個通用方法,如下所示:

interface Converter{
    <S, T> T convert(S s);
}

Now I have Class A and Class B, I want to override above method by convert Class A object to Class B object. 我確實喜歡下面,但都顯示錯誤未實現該方法。 有沒有辦法在覆蓋方法中指定 class A 和 Class B ?

我在下面試過:

Class ConverterImpl implements Converter{
    @Override
    B convert(A a){
        //...
    }
}

我在上面試過了,它有編譯錯誤說沒有實現轉換方法

我認為你想要的是泛化界面。

interface Converter<T,R> {
   R convert(T toConvert);
}

你用它來實現它

class AtoBConverter implements Converter<A,B> {
   B convert(A toConvert);
}

使用您的方法聲明,每個 class 都需要實現通用版本。

順便說一句,使用現有接口通常是一種好習慣; 在這種情況下,這將是Function<T,R>與方法R accept(T)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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