您好,欢迎来到抵帆知识网。
搜索
您的当前位置:首页Java枚举Enum用法详解

Java枚举Enum用法详解

来源:抵帆知识网
Java枚举Enum⽤法详解

前两篇博⽂对枚举处理器进⾏了详细的介绍,这⾥对枚举Enum的⽤法进⾏⼀个⼤致总结,以便于更好的理解代码逻辑。还是以Enabled枚举类为例⼦进⾏汇总:

package com.example.simple.type;public enum Enabled { enabled(1), //启⽤ disabled(0); //禁⽤ private final int value; private Enabled(int value) { this.value = value; }

public int getValue() { return value; }}

⼀、⽅法

⽅法

详解

以数组形式返回枚举类型的所有成员 System.out.println(Enabled.values());

测试了⼀下上⾯代码实现⽅式不可⾏,并不能实现枚举类型成员实现,⽽要通过循环⽅式实现,如下:

for(Enabled enabled:Enabled.values()){ System.out.println(enabled); }

Enabled.values()

或者:

for(int i = 0;iSystem.out.println(Enabled.values()[i]); }

测试结果为:enableddisabled

根据普通字符串抓取到对应的枚举实例,普通字符串类型变为枚举类型

System.out.println(Enabled.valueOf(\"enabled\"));

输出:

Enabled.valueOf(String string)

enabled若变为:

System.out.println(Enabled.valueOf(\"aaa\"));

会出现异常:

java.lang.IllegalArgumentException: No enum constant com.example.simple.type.Enabled.aaa ⽐较两个枚举成员在定义时的顺序,通俗来说就是前后顺序

compare(Enabled.valueOf(\"enabled\"));

public static void compare(Enabled enabled){ for(int i = 0;iSystem.out.println(enabled+\"和\"+ Enabled.values()[i]

+ \"的⽐较结果是\" + enabled.compareTo(Enabled.values()[i])); }

compareTo(Enabled enabled)

}

测试结果为:

enabled和enabled的⽐较结果是0enabled和disabled的⽐较结果是-1

如果枚举类中将enabled和disabled前后顺序倒过来,那么结果是:enabled和disabled的⽐较结果是1enabled和enabled的⽐较结果是0

获取到对应的枚举值disabled,其类型是Enabled,从枚举类中直接获取到此枚举,没进⾏任何加⼯,来⼀⼩⾏代码测试⼀下:

Enabled.disabled

System.out.println(Enabled.disabled); Enabled disabled = Enabled.disabled; System.out.println(disabled);

输出结果为:disableddisabled

Enabled.enabled

获取到对应的枚举值enabled,其类型是Enabled,从枚举类中直接获取到此枚举,没进⾏任何加⼯。

ps:这⾥还有ordinal()函数,作⽤是获取⼀个成员在枚举中的索引位置。

for(int i=0;iSystem.out.println(\"索引\"+Enabled.values()[i].ordinal()+\",值:\"+Enabled.values()[i]); }

测试结果为:索引0,值:enabled索引1,值:disabled ⾄此,结束。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- dfix.cn 版权所有 湘ICP备2024080961号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务