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);
  • 相关阅读:
    Centos下安装FastDFS
    elasticsearch5.6.8安装和配置
    maven利用插件发布项目到tomcat
    vue-cli安装以及mongodb原生操作
    J2EE基础
    Debian Gun/linux基本用法
    SpringCloud 中如何使微服务只能被指定的程序调用
    CentOS 使用Docker 部署多台Springboot程序,并用Nginx做负载均衡
    CentOS上没有ifcofig命令
    CentOS yum安装时报错 yum install cannot find a vaild baseur
  • 原文地址:https://www.cnblogs.com/wangbin2188/p/15492740.html
Copyright © 2011-2022 走看看