日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

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

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

> 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;

}

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。