欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java根據(jù)key獲取枚舉值的操作方法

 更新時(shí)間:2024年07月16日 08:34:26   作者:莊家鉅Java  
枚舉(enum)算一種“語(yǔ)法糖”,是指一個(gè)經(jīng)過(guò)排序的、被打包成一個(gè)單一實(shí)體的項(xiàng)列表,一個(gè)枚舉的實(shí)例可以使用枚舉項(xiàng)列表中任意單一項(xiàng)的值,本文給大家介紹了Java?如何快速根據(jù)?key?獲取枚舉的值,需要的朋友可以參考下

前言

Hutool 是一個(gè)小而全的Java工具類庫(kù),通過(guò)靜態(tài)方法封裝,降低相關(guān)API的學(xué)習(xí)成本,提高工作效率,使Java擁有函數(shù)式語(yǔ)言般的優(yōu)雅,讓Java語(yǔ)言也可以“甜甜的”。

官網(wǎng):https://www.hutool.cn/

推薦說(shuō)明

枚舉(enum)算一種“語(yǔ)法糖”,是指一個(gè)經(jīng)過(guò)排序的、被打包成一個(gè)單一實(shí)體的項(xiàng)列表。一個(gè)枚舉的實(shí)例可以使用枚舉項(xiàng)列表中任意單一項(xiàng)的值。枚舉在各個(gè)語(yǔ)言當(dāng)中都有著廣泛的應(yīng)用,通常用來(lái)表示諸如顏色、方式、類別、狀態(tài)等等數(shù)目有限、形式離散、表達(dá)又極為明確的量。Java從JDK5開(kāi)始,引入了對(duì)枚舉的支持。

EnumUtil 用于對(duì)未知枚舉類型進(jìn)行操作。

最佳實(shí)踐

引入pom

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <!-- 請(qǐng)查看最新版本 https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <version>5.8.26</version>
</dependency>

方法

首先我們定義一個(gè)枚舉對(duì)象:

//定義枚舉
public enum TestEnum{
	TEST1("type1"), TEST2("type2"), TEST3("type3");
	
	private TestEnum(String type) {
		this.type = type;
	}
	
	private String type;
	
	public String getType() {
		return this.type;
	}
}

getNames

獲取枚舉類中所有枚舉對(duì)象的name列表。栗子:

List<String> names = EnumUtil.getNames(TestEnum.class);
//結(jié)果:[TEST1, TEST2, TEST3]

getBy

根據(jù)傳入lambda和值獲得對(duì)應(yīng)枚舉。栗子:

TestEnum testEnum = EnumUtil.getBy(TestEnum::ordinal, 1);
//結(jié)果:TEST2

getFieldBy

根據(jù)傳入lambda和值獲得對(duì)應(yīng)枚舉的值。栗子:

String type = EnumUtil.getFieldBy(TestEnum::getType, Enum::ordinal, 1);
// 結(jié)果:“type2”

getEnumMap

獲取枚舉字符串值和枚舉對(duì)象的Map對(duì)應(yīng),使用LinkedHashMap保證有序,結(jié)果中鍵為枚舉名,值為枚舉對(duì)象。栗子:

Map<String,TestEnum> enumMap = EnumUtil.getEnumMap(TestEnum.class);
enumMap.get("TEST1") // 結(jié)果為:TestEnum.TEST1

getNameFieldMap

獲得枚舉名對(duì)應(yīng)指定字段值的Map,鍵為枚舉名,值為字段值。栗子:

Map<String, Object> enumMap = EnumUtil.getNameFieldMap(TestEnum.class, "type");
enumMap.get("TEST1") // 結(jié)果為:type1

寫在最后

到此這篇關(guān)于Java根據(jù)key獲取枚舉值的操作方法的文章就介紹到這了,更多相關(guān)Java根據(jù)key獲取枚舉值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解

    Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解

    這篇文章主要介紹了Java用戶交互scanner及運(yùn)算結(jié)構(gòu)代碼詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • fastJson泛型如何轉(zhuǎn)換的實(shí)現(xiàn)

    fastJson泛型如何轉(zhuǎn)換的實(shí)現(xiàn)

    這篇文章主要介紹了fastJson泛型如何轉(zhuǎn)換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • java 中break如何跳出外部循環(huán)

    java 中break如何跳出外部循環(huán)

    這篇文章主要介紹了java 中break如何跳出外部循環(huán),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java GC垃圾回收算法分析

    Java GC垃圾回收算法分析

    垃圾回收機(jī)制簡(jiǎn)稱GC,主要用于Java堆的管理。在JVM中程序計(jì)數(shù)器、虛擬機(jī)棧、本地方法棧生命周期隨跟隨線程,棧幀的進(jìn)棧和入棧能實(shí)現(xiàn)自動(dòng)清理。而 jdk8后元空間為本地內(nèi)存也不受GC控制,所以垃圾回收主要是在堆中
    2022-12-12
  • springboot對(duì)數(shù)據(jù)庫(kù)密碼加密的實(shí)現(xiàn)

    springboot對(duì)數(shù)據(jù)庫(kù)密碼加密的實(shí)現(xiàn)

    這篇文章主要介紹了springboot對(duì)數(shù)據(jù)庫(kù)密碼加密的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • 應(yīng)用啟動(dòng)數(shù)據(jù)初始化接口CommandLineRunner和Application詳解

    應(yīng)用啟動(dòng)數(shù)據(jù)初始化接口CommandLineRunner和Application詳解

    這篇文章主要介紹了應(yīng)用啟動(dòng)數(shù)據(jù)初始化接口CommandLineRunner和Application詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)

    Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單碰撞檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理

    SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理

    這篇文章主要介紹了SpringBoot @ControllerAdvice 攔截異常并統(tǒng)一處理,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java中并行執(zhí)行任務(wù)的多種方式

    Java中并行執(zhí)行任務(wù)的多種方式

    在Java編程中,經(jīng)常會(huì)遇到需要并行執(zhí)行任務(wù)的情況,特別是在處理大量數(shù)據(jù)或者需要異步處理的場(chǎng)景下,本文將介紹幾種常用的并行執(zhí)行任務(wù)的方式,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2024-04-04
  • IDEA中使用Docker Compose容器編排的實(shí)現(xiàn)

    IDEA中使用Docker Compose容器編排的實(shí)現(xiàn)

    這篇文章主要介紹了IDEA中使用Docker Compose容器編排的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07

最新評(píng)論