[英]Implements an interface that return a generic type
我看到了這些:
我確實理解編譯器為什么會抱怨。
無論如何,如果我們只使用泛型作為返回值。
public interface Connection
{
<T extends Comparable<? super T>> T getVersion();
}
然后這個實現只給出一個警告(我使用的是 Java 7):
public class IoConnectionStub implements Connection
{
public String getVersion()
{
return "1.0";
}
}
這是有效的嗎? 還是會引起一些問題?
謝謝 !
對於泛型方法,調用者可以指定類型參數 - 所以我應該能夠使用:
Connection foo = new IoConnectionStub();
Integer x = foo.<Integer>getVersion();
這顯然不適用於您的情況。
聽起來如果你真的需要這個(我認為這對於版本屬性來說有點奇怪......)你會想要使接口通用 - 例如,這樣IoConnectionStub
可以實現Connection<String>
,你最終會代碼如下:
Connection<String> foo = new IoConnectionStub();
String version = foo.getVersion();
您不能要求Integer
版本號,因為IoConnectionStub
不會實現Connection<Integer>
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.