我想創建一個不同 Enum 類的串列,并能夠訪問串列中這些列舉的值。例如,考慮兩個列舉:
enum Enum1 {
ENUM1_VALUE_1, ENUM1_VALUE_2;
}
enum Enum2 {
ENUM2_VALUE_1, ENUM2_VALUE_2;
}
我想構造一個 Enum1 和 Enum2 的串列,以便我可以列印 Enum1 和 Enum2 的值。
它看起來像這樣,但這顯然不能編譯:
List<Enum> enumList = Arrays.asList(Enum1, Enum2);
for (Enum enumEntry: enumList) {
System.out.println(enumList.values());
}
有任何想法嗎?
uj5u.com熱心網友回復:
混合列舉物件
讓兩個類都使用您需要的任何方法實作相同的介面。
然后創建包含該介面的物件而不是任一列舉類的串列。
提示:從 Java 16 開始,可以在本地定義介面、列舉和記錄。
interface Animal {}
enum Pet implements Animal { DOG, CAT ; }
enum Wild implements Animal { LION , ORCA ; }
List< Animal > felines = List.of( Pet.CAT , Wild.LION ) ;
混合列舉類
如果列舉的類是您要收集的Class類,請使用該類。也許是反思。
List< Class > myEnumClasses = List.of( Pet.class , Wild.class ) ;
Java 中的列舉隱式擴展了Enum類。所以我們可以更具體地使用我們的串列型別。
List< Enum > myEnumClasses = List.of( Pet.class , Wild.class ) ;
現在我們可以執行你的回圈了。(也許……我還沒有運行以下行。)
for ( Enum e : myEnumClasses ) {
System.out.println( List.of( e.values() ) );
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398238.html
