zoukankan      html  css  js  c++  java
  • java枚举类常用方法

    java枚举类是非常常用的类型

    下面做一个简单的总结

    一、枚举基础

    public enum FilterType {
        DATE_FILTER,
        TEXT_FILTER,
        SELECT_FILTER;
    
        
        public static void main(String[] args) {
            //通过下标返回枚举对象
            FilterType[] values = FilterType.values();
            FilterType filterType = values[0];
            System.out.println(filterType);
            //通过枚举对象返回下标
            int index = filterType.ordinal();
            System.out.println(index);
            //通过枚举对象返回名称
            String name = filterType.name();
            System.out.println(name);
            //通过字符串名称返回枚举对象
            FilterType date_filter = FilterType.valueOf("DATE_FILTER");
            System.out.println(date_filter);
        }
    }

    二、给枚举类型添加属性

    public enum ColumnType {
        INT("整型"),
        DOUBLE("浮点型"),
        DATE_YYYY("日期:yyyy"),
        DATE_YYYY_MM("日期:yyyy-MM"),
        DATE_YYYY_MM_DD("日期:yyyy-MM-dd"),
        DATETIME("日期时间"),
        VARCHAR("字符串");
    
        private final String value;
    
        ColumnType(String value) {
            this.value = value;
        }
    
        public String getValue() {
            return value;
        }
        
    
        public static void main(String[] args) {
            String value = ColumnType.INT.getValue();
            System.out.println(value);
         
        }
    }

    三、给枚举添加方法

    如果每个枚举对象都需要有不同的行为,可以通过在枚举类中定义抽象方法的形式实现。

    这样每个枚举对象都需要实现这个抽象方法

    public enum TemplateStatus {
        DRAFT(0) {
            void say() {
                System.out.println("草稿");
            }
    
            ;
        },//草稿
        RELEASE(1) {
            void say() {
                System.out.println("发布");
            }
        };//发布
    
        private final int value;
    
        TemplateStatus(int value) {
            this.value = value;
        }
    
        public int getValue() {
            return value;
        }
    
        abstract void say();
    }

    四、枚举Set和枚举Map

    因为枚举类不能灵活的添加和删除元素,所以java本身又提供了EnumSet和EnumMap来增强这方面的功能。

     //EnumSet可以表示包含不包含,开或关
            EnumSet<ColumnType> columnTypes1 = EnumSet.noneOf(ColumnType.class);
            EnumSet<ColumnType> columnTypes = EnumSet.allOf(ColumnType.class);
            EnumSet<ColumnType> range = EnumSet.range(INT, VARCHAR);
            EnumSet<ColumnType> anInt = EnumSet.of(INT, DOUBLE);
            boolean contains = columnTypes.contains(ColumnType.INT);
            //EnumMap可以实现类似命令模式或策略模式的功能
            EnumMap<ColumnType, String> enumMap = new EnumMap<ColumnType, String>(ColumnType.class);
            enumMap.put(ColumnType.INT,"int");
            String s = enumMap.get(ColumnType.DOUBLE);
  • 相关阅读:
    C:函数指针、回调函数
    C:内存分配、内存中五大区
    C:指针
    C:进制
    C:预编译指令
    C:矩形相交、相包含、相离关系判断
    C:结构体
    C:函数
    C:数组
    C: 冒泡排序
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/15492740.html
Copyright © 2011-2022 走看看