簡體   English   中英

實現一個返回泛型類型的接口

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

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