日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

java enum 返回list_java – 组合枚举并使用getter返回指定的枚举

發布時間:2025/4/16 54 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java enum 返回list_java – 组合枚举并使用getter返回指定的枚举 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

這是您正在尋找的另一個示范.此解決方案與以前的解決方案之間的區別在于,此解決方案更通用且可重復使用.事實上這超出了原來的問題,顯示了這種方法的一些其他好處.所以你可能只是評論你不需要的位.我還附上一個單元測試來證明行為.

所以基本上只需要在其中一個枚舉中查找名稱Apple或APPLE:

FruitVeg fvg = getEnum(“APPLE”,Fruits.class,Vegetables.class);

FruitVeg<>是一個界面,它允許也點擊Enum內部,這個界面允許用下面的枚舉做一些非常有趣的事情.以下是您可以做的一些事情:

> Enum.valueOf(fvg.getDeclaringClass(),fvg.name()):返回枚舉值,例如:蘋果

> fvg.getRaw():返回枚舉值,例如蘋果

> fvg.name():返回枚舉的字符串名稱,例如蘋果

> fvg.getFriendlyName():例如蘋果

> fvg.getDeclaringClass():返回Class< Enum>例如class ox.dummy.dummyTest $Fruits

> fvg.getClass():class ox.dummy.dummyTest $Fruits返回Class

> EnumSet.allOf(fvg.getDeclaringClass())):例如[蘋果,梨]

這是代碼

@Test

public void doSimpleTest() throws Exception {

FruitVeg> fvg = getEnum("APPLE", Fruits.class, Vegetables.class);

log.info("{} : {} : {} : {} : {}", fvg.name(), fvg.getFriendlyName(), fvg.getClass(), fvg.getDeclaringClass(), EnumSet.allOf(fvg.getDeclaringClass()));

log.info("get enum: {} ", Enum.valueOf(fvg.getDeclaringClass(), fvg.name()));

}

public interface FruitVeg> {

String name();

String getFriendlyName();

Class getDeclaringClass();

T getRaw();

}

enum Fruits implements FruitVeg {

APPLE("Apple"),

PEAR("Pear");

Fruits(String friendlyName) {

this.friendlyName = friendlyName;

}

private final String friendlyName;

@Override

public String getFriendlyName() {

return friendlyName;

}

@Override

public Fruits getRaw() {

return this;

}

}

enum Vegetables implements FruitVeg {

CARROT("Carrot"),

LETTUCE("Lettuce");

Vegetables(String friendlyName) {

this.friendlyName = friendlyName;

}

private final String friendlyName;

@Override

public String getFriendlyName() {

return friendlyName;

}

@Override

public Vegetables getRaw() {

return this;

}

}

public static FruitVeg> getEnum(String name, Class extends FruitVeg>>... fvgClasses) {

for (Class extends FruitVeg>> fruitVegCLass : Arrays.asList(fvgClasses)) {

for (FruitVeg> fvg : fruitVegCLass.getEnumConstants()) {

if (name.equals(fvg.name()) || name.equals(fvg.getFriendlyName())) {

return fvg;

}

}

}

return null;

}

總結

以上是生活随笔為你收集整理的java enum 返回list_java – 组合枚举并使用getter返回指定的枚举的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。