zoukankan      html  css  js  c++  java
  • 枚举类的创建和使用

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

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

    枚举类的创建:

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

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

    public class EnumUtil {
        /**
         * 获取枚举值
         *
         * @param enumInstance 枚举常量
         * @param value        枚举常量的value
         * @param <T>          枚举的类型参数
         */
        public static <T extends Enum<T>> 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);

      

  • 相关阅读:
    如何取消隐藏工作簿,使工作簿可见
    Android小知识总结
    Android内存泄露总结
    Ubuntu 升级VisualBox后无法启动 Kernel driver not installed (rc=-1908)
    Eclipse颜色主题插件:Eclipse Color Theme
    使用Json的注意事项
    android中正确导入第三方jar包
    设计模式--单例模式学习
    比较好的学习网址总结
    二叉树学习总结(Java实现)
  • 原文地址:https://www.cnblogs.com/baizhanshi/p/6830878.html
Copyright © 2011-2022 走看看