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

本文共 1385 字,大约阅读时间需要 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);

  

转载于:https://www.cnblogs.com/baizhanshi/p/6830878.html

你可能感兴趣的文章
JAVA基础入门(JDK、eclipse下载安装)
查看>>
最基础的applet运用--在applet上画线
查看>>
并不对劲的hdu4777
查看>>
linux使用rz、sz快速上传、下载文件
查看>>
判断数字的正则表达式
查看>>
DOC常用命令(转)
查看>>
php写一个判断是否有cookie的脚本
查看>>
Mac配置Fiddler抓包工具
查看>>
转:Java并发集合
查看>>
Word截图PNG,并压缩图片大小
查看>>
Python项目对接CAS方案
查看>>
mysql产生随机数
查看>>
编程风格
查看>>
熟悉常用的Linux命令
查看>>
易之 - 我是个大师(2014年3月6日)
查看>>
Delphi中窗体的事件
查看>>
file_get_contents()获取https出现这个错误Unable to find the wrapper “https” – did
查看>>
linux vi编辑器
查看>>
js树形结构-----(BST)二叉树增删查
查看>>
contract
查看>>