Java_enum

枚举

import java.security.PublicKey;
import java.util.Arrays;

public enum ColorOne {

    REA(1111,"红色"),
    PINK(2222,"粉色"),
    BLANK(3333,"黑色");


    private Integer id;
    private String name;

    //应该是让最上层的数据进入到内存中
    ColorOne(Integer id, String name) {
        this.id = id;
        this.name = name;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    //通过id遍历获取对应的名字
    public static String getName(int id){
        for (ColorOne c:ColorOne.values()) {
            if (c.getId() == id){
                return c.getName();
            }
        }
        return "null";
    }
    //覆盖toString方法
    @Override
    public String toString() {
        return this.id+"_"+this.name;
    }


    public static void main(String[] args) {

        String s1 = ColorOne.BLANK.toString();//Color.toString 编译报错

        System.out.println(s1);

        System.out.println(Arrays.toString(ColorOne.values()));

        String s = ColorOne.getName(3333);

        System.out.println(s);
    }
}

结果:

3333_黑色
[1111_红色, 2222_粉色, 3333_黑色]
黑色

这里我出现的一个错误:我用Integer类型直接==比较值,其实他们只能在byte范围之内(-128~127)才能这样比较,因为有缓存。

 

单属性枚举:

import javax.naming.Name;

public enum NewEnum {

    FIRST("李格宇"),
    TWICE("元钱"),
    THIRD("小于");

    private String name;

    NewEnum(String name) {
        this.name = name;
    }
    
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void main(String[] args) {

        NewEnum first = NewEnum.FIRST;
        System.out.println(first.getName());

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值