簡體   English   中英

Java方法返回實現接口的枚舉

[英]Java method returns an enum which implements an interface

如何指定Java方法返回實現接口的枚舉? 給出了這種方法:

public <T extends Enum<T> & SomeInterface> void someMethod(Class<T> type) {
}

我想這樣做:

someMethod(anotherMethod());

anotherMethod方法的簽名應該是什么?

如果someMethod需要一個Class<T>參數,其中T extends Enum<T> & SomeInterface ,那么這就是你需要從返回的內容anotherMethod 由於您在所需電話中的括號中沒有任何內容,我只想說:

public Class<T extends Enum<T> & SomeInterface> anotherMethod()

應該正確實施

<T extends Enum<? extends T> & SomeInterface> void someMethod(Class<T> type);

<T extends Enum<? extends T> & SomeInterface>  Class<T>  anotherMethod();

通過通配符查看更多樂趣

或更簡單的版本

public class Example<T extends Enum<T> & SomeInterface> {
  public void someMethod(Class<T> type) {}
  public Class<T> anotherMethod() {}
}

anotherMethod只需要返回一個Class ,它可能是你想到的擴展枚舉和接口的完全類,或者只是一個通配符Class<?> (盡管你會有編譯時警告)。 如果要避免警告,則返回類型必須為Class<T> ,並且在您調用的方法中使用泛型定義T

暫無
暫無

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

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