博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
枚举类的创建和使用
阅读量:5979 次
发布时间:2019-06-20

本文共 1331 字,大约阅读时间需要 4 分钟。

静态常量是编译期常量,如果其值被改变,那么使用方需要重新编译。项目初始化的时候会被全部加载到内存中,消耗内存。

枚举的创建可以把一类具有相同意义的常量放在一个相同的枚举类里,获取里面的常量值是在类加载使用的时候使用反射机制获取的值。

枚举类的创建:

public enum BooleanType {    NULL(""),    TRUE("1"),    FALSE("0");    BooleanType(String value) {        EnumUtil.changeNameTo(this,value);    }}

获取枚举值的数值的帮助类:

public class EnumUtil {    /**     * 获取枚举值     *     * @param enumInstance 枚举常量     * @param value        枚举常量的value     * @param 
枚举的类型参数 */ public static
> void changeNameTo(T enumInstance, String value) { try { Field fieldName = enumInstance.getClass().getSuperclass().getDeclaredField("name"); fieldName.setAccessible(true); fieldName.set(enumInstance, value); fieldName.setAccessible(false); } catch (Exception e) { e.printStackTrace(); } }}

帮助类这里使用了反射机制。

/**     * 枚举类型的比较,包括null     *     * @param enum1 枚举常量1     * @param enum2 枚举常量2     * @return 如果相等返回true, 否则返回false     */    public static boolean enumEquals(Enum enum1, Enum enum2) {        if (enum1 == null && enum2 == null) {            return true;        } else if (enum1 != null) {            return enum1.equals(enum2);        } else {            return enum2.equals(enum1);        }

以上是枚举值的比较逻辑。

枚举的使用:

System.out.println(BooleanType.FALSE);

  

转载地址:http://vyoox.baihongyu.com/

你可能感兴趣的文章
android幻灯片效果实现-Gallery
查看>>
实现Instagram的Material Design概念设计
查看>>
CentOS 6.x 快速安装L2TP ***
查看>>
一篇文章能够看懂基础源代码之JAVA篇
查看>>
Goldengate双向复制配置
查看>>
Oracle官方内部MAA教程
查看>>
DNS相关配置
查看>>
miniWindbg 功能
查看>>
CF772E Verifying Kingdom
查看>>
第二次冲刺 第七天
查看>>
测试驱动开发
查看>>
【Udacity】线性回归方程 Regression
查看>>
轻松实现远程批量拷贝文件脚本(女学生作品)
查看>>
【沟通之道】头脑风暴-女人的心思你别猜
查看>>
Windows Phone 8 开发资源汇总
查看>>
Git:配置
查看>>
神经系统知识普及
查看>>
Spring可扩展Schema标签
查看>>
c++ STL unique , unique_copy函数
查看>>
http://miicaa.yopwork.com/help/overall/
查看>>