Java灵活使用枚举表示一组字符串的操作

 更新时间:2021年06月08日 11:35:29   作者:思影影思  
这篇文章主要介绍了Java灵活使用枚举表示一组字符串的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java枚举表示一组字符串

public class HelloWorld {
    public static void main(String []args) {
       System.out.println("Hello World!");
		System.out.println(Season.SPRING.toString());
		System.out.println(Season.SPRING.value());
    }
}
enum Season {
	SPRING("spring"), SUMMER("summer"), AUTUMN("autumn"), WINTER("winter");
	
	public final String value;
	private Season(String value) {
		this.value = value;
	}
	
	public String value() {
		return this.value;
	}
}

程序输出结果如下:

Hello World!
SPRING
spring

Java枚举类的正确使用

规范使用枚举类

public enum StatEnum {
    SUCCESS(1,"成功"),
    FAILD(0,"失败"),
    REPEAT(-1,"重复"),
    INNER_ERROR(-2,"系统异常"),
    DATA_ERROR(-3,"数据异常");
    private  int state;
    private  String stateInfo;
    StatEnum(int state, String stateInfo) {
        this.state = state;
        this.stateInfo = stateInfo;
    }
    public int getState() {
        return state;
    }
    public String getStateInfo() {
        return stateInfo;
    }
    public static StatEnum stateOf(int index){
        for(StatEnum state: values()){
            if(state.getState() == index){
                return state;
            }
        }
        return  null;
    }
}

枚举搭配接口一起使用

// 定义接口
public interface CodeEnum {
    Integer getCode();    
    String getMessage();
}
// 定义枚举
public enum StatusEnum implements CodeEnum {
    SUCCESS(0, "成功"),
    DAILD(1, "失败");
    private Integer code;
    private String message;
    StatusEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
    
    @Override
    public Integer getCode() {
        return code;
    }
    @Override
    public String getMessage() {
        return message;
    }
}
// 定义工具类
public class EnumUtil {
    public static <T extends CodeEnum> T getByCode(Integer code, Class<T> enumClass) {
        for (T each: enumClass.getEnumConstants()) {
            if (code.equals(each.getCode())) {
                return each;
            }
        }
        return null;
    }
}

使用:

EnumUtil.getByCode(0, StatusEnum.class).getMessage()
EnumUtil.getByCode(1, StatusEnum.class).getCode()

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java webservice超时时间设置方法代码

    java webservice超时时间设置方法代码

    当我们使用WebService进行调用时,有时会出现超时的情况,下面这篇文章主要给大家介绍了关于java webservice超时时间设置方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • Java并发Map面试线程安全数据结构全面分析

    Java并发Map面试线程安全数据结构全面分析

    本文将探讨如何在Java中有效地应对这些挑战,介绍一种强大的工具并发Map,它能够帮助您管理多线程环境下的共享数据,确保数据的一致性和高性能,深入了解Java中的并发Map实现,包括ConcurrentHashMap和ConcurrentSkipListMap,及相关知识点
    2023-09-09
  • 四种引用类型在JAVA Springboot中的使用详解

    四种引用类型在JAVA Springboot中的使用详解

    这篇文章主要介绍了springboot的四种引用类型,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Java面试题冲刺第二十二天-- Nginx

    Java面试题冲刺第二十二天-- Nginx

    这篇文章主要为大家分享了最有价值的三道关于Nginx的面试题,涵盖内容全面,包括数据结构和算法相关的题目、经典面试编程题等,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • java全角、半角字符的关系以及转换详解

    java全角、半角字符的关系以及转换详解

    这篇文章主要介绍了
    2013-11-11
  • Java中forEach使用lambda表达式,数组和集合的区别说明

    Java中forEach使用lambda表达式,数组和集合的区别说明

    这篇文章主要介绍了Java中forEach使用lambda表达式,数组和集合的区别说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • SpringBoot使用Netty实现远程调用的示例

    SpringBoot使用Netty实现远程调用的示例

    这篇文章主要介绍了SpringBoot使用Netty实现远程调用的示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • SpringBoot在一定时间内限制接口请求次数的实现示例

    SpringBoot在一定时间内限制接口请求次数的实现示例

    在项目中,接口的暴露在外面,很多人就会恶意多次快速请求,本文主要介绍了SpringBoot在一定时间内限制接口请求次数的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2022-03-03
  • 一文详解Spring事务的实现与本质

    一文详解Spring事务的实现与本质

    这篇文章主要介绍了Spring中事务的两种实现方式:声明式事务、编程式事务以及他们的本质。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-04-04
  • IDEA 2020代码提示忽略大小写的问题

    IDEA 2020代码提示忽略大小写的问题

    这篇文章主要介绍了IDEA 2020代码提示忽略大小写的问题,本文通过图文并茂的形式给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07

最新评论