我在高級Java的泛型知識的初級水平相對比例的多重約束類型定義的接口。我想定義一個接口,這樣的事情使用Java泛型
public interface Transformer {
<T extends String & List<String>> T transform(String input) throws
IOException;
}
我的實現類如下所示:
public Class A implements Transformer{
....
....
@Override
public <T extends String & List<String>> T transform(String input) throws IOException {
String response = "a";
return response; // compilation error "Incompatible Types: Required T but found java.lang.String"
}
}
我想擁有的一切:實現類應該能夠傳遞一個字符串輸入返回類型可以是String或List。實現類完全有自由選擇任何一種返回類型。
問題: 1.爲什麼編譯錯誤「Incompatible Types:Required T但是發現java.lang.String」顯示出來?
變換方法的返回值需要延伸字符串(它不能自字符串是最終)和實現List接口。我非常懷疑這是你想要的東西......你應該改變你的問題,以便你的目標明確... –