Java中枚举类Enum常见使用方法总结

本文详细介绍了枚举类型的两种实用应用方法:一是通过枚举成员的code获取其name,二是重写枚举类型的toString()方法以更具体地表达枚举对象的属性。通过具体示例代码展示了如何实现这些功能,并提供了测试用例来验证方法的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

public enum Season {
    SPRING("spring","春天"),
    SUMMER("summer","夏天"),
    AUTUMN("autumn","秋天"),
    WINTER("winter","冬天");
    private String code;
    private String name;

    // 通过code获取name
    public static String getNameByCode(String code) {
        // 关于values(),可以理解为一个Map数组
        for (Season s : Season.values()) {
            if (code == s.getCode()) {
                return s.getName();
            }
        }
        return null;
    }
    // 构造方法
    Season (String code,String name) {
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

测试用例一:

public class EnumDemo {
    public static void main (String args[]) {
        // 通过指定code,获取name
        String code = "spring";
        String name = Season.getNameByCode(code);
        System.out.println("通过code为spring获取的到name为:" + name);
        // 关于values(),可以理解为一个Map数组,
        // key是枚举对象,value有两个,一个是code,一个是name
        for (Season s : Season.values()) {
            System.out.println("");
            System.out.println("枚举对象:" + s);
            System.out.println("code:" + s.getCode());
            System.out.println("name:" + s.getName());
        }
    }
}

输出一:

在这里插入图片描述

方法二:重写toString()

public enum Job {
    DOCTOR("doctor","医生"),
    TEACHER("teacher","老师"),
    STUDENT("student","学生"),
    ENGINEER("engineer","工程师");
    private String code;
    private String name;

    Job(String code, String name) {
        this.code = code;
        this.name = name;
    }
    // POJO(Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans(类),
    // 一般来说具有一部分getter/setter方法的那种类就可以称作POJO。
    // 重写toString()方法后,更具体的表达对象属性
    // // toString()是Object类的方法,默认返回的是内存地址,就是一串hashcode
    @Override
    public String toString () {
        return "code=" + this.code +
                ",name=" + this.name;
    }
}

测试用例二:

public class EnumJob {
    public static void main (String args[]) {
        System.out.println(Job.DOCTOR.toString());
        System.out.println(Job.ENGINEER.toString());
        System.out.println(Job.STUDENT.toString());
        System.out.println(Job.ENGINEER.toString());
    }
}

输出二:

重写toString()方法前:
在这里插入图片描述
重写toString()方法后:
在这里插入图片描述

方法三:

参考博文:
https://blog.youkuaiyun.com/qq_27093465/article/details/52180865?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值