2
我是隻是爲了通過枚舉覆蓋的接口傳遞只是一種枚舉的方法 - 在這我要更好的方式來創建限制用戶
interface Parent{
int someMethod();
}
和方法通過Parent的實現者。這種方法要限制用戶通過非ENUM的其他任何實施者 -
public static <T extends Enum<? extends Parent>> T fromInt(Class<T> enumClass){}
現在的問題是
- 枚舉簽名是不潔加上使用
?
。 爲了訪問父類的
someMethod
將需要在該方法中進行類型轉換。如果我們想訪問它像這樣 -Arrays.stream(enumClass.getEnumConstants()) .filter(ev -> ((Parent)ev).someMethod() == someVal) .findFirst().get();
是否有創建這個方法的簽名來解決這些問題的一個更好的辦法?
這難道不是一種***工會**的兩個接口*作爲類必須uimplement ** **兩種接口? – OldCurmudgeon
@OldCurmudgeon它被稱爲交集。看看[JLS](https://docs.oracle.com/javase/specs/jls/se8/html/jls-4.html#jls-4.9)。 – Tunaki
啊!我立場糾正。 TLS中的單詞非常混淆。 :( – OldCurmudgeon