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