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