• JAVA中定义常量的几种方式


    1、最古老的

    //未处理
    public static final Integer PROCESS_STATUS_UNTREATED = 0;
    //已接收
    public static final Integer PROCESS_STATUS_ACCPECTED = 1; 
    //已处理
    public static final Integer PROCESS_STATUS_PROCESSED = 2;

    2、改进版的

    public static final class PROCESS_STATUS{
            //未处理
            public static final Integer UNTREATED = 0;
            //已接收
            public static final Integer ACCPECTED = 1;
            //已处理
            public static final Integer PROCESSED = 2;
    }

    3、枚举版(好处显而易见,既可以获取code又能获取汉字),以后定义常量采用此方法

    /**
     * 常量的枚举定义接口
     * @author yangzhilong
     * @param <T>
     *
     */
    public interface BaseConstant<T> {
        T getCode();
        String getDesc();
    }
    /**
     * 操作类型
     * @author yangzhilong
     *
     */
    public enum OPERATION_TYPE implements BaseConstant<String>{
        ADD("add", "新增"),
        UPDATE("update", "修改"),
        DELETE("delete", "删除");
    
        private String code;
        private String desc;
        OPERATION_TYPE(String key, String value) {
            this.code = key;
            this.desc = value;
        }
    
        @Override
        public String getCode() {
            return code;
        }
    
        @Override
        public String getDesc() {
            return desc;
        }
    }

     调用方式:

    //获取编码
    PROCESS_STATUS.UNTREATED.getCode();
    //获取描述
    PROCESS_STATUS.UNTREATED.getDes();

     根据枚举类型和编码获取code的描述:

    public class ConstantUtils {
        
        /**
         * 根据枚举的code获取desc
         * @param <T>
         * @param clazz
         * @param codeValue
         * @return
         */
        public static <T extends Enum<T> & BaseConstant<T>>  String getEnumValue(Class<T> clazz ,
                Object codeValue) {
            String result = null;
            T[] enums = clazz.getEnumConstants();
            for(T obj : enums){
                if(obj.getCode().equals(codeValue)){
                    result = obj.getDesc();
                    break;
                }
            }
            return result;
        }
        
        /**
         * 根据枚举的code获取整个枚举对象
         * @param <T>
         * @param clazz
         * @param codeValue
         * @return
         */
        public static <T extends Enum<T> & BaseConstant<T>>  BaseConstant<T> getEnum(Class<T> clazz ,
                Object codeValue) {
            BaseConstant<T> result = null;
            T[] enums = clazz.getEnumConstants();
            for(T obj : enums){
                if(obj.getCode().equals(codeValue)){
                    result = obj;
                    break;
                }
            }
            return result;
        }
    }
  • 相关阅读:
    关系型数据库vs非关系型数据库
    Vue使用日常记录
    【0805作业】模拟接力赛跑
    【0805作业】模拟叫号看病
    【0805作业】模拟多人爬山
    【0805作业】实现Runnable接口的方式创建线程
    【0805作业】继承Thread类创建线程,输出20次数字,“你好”,线程名
    超市会员管理系统
    【0802作业】循环注册十个账号,重启程序能正常登录
    【0802作业】复制图片
  • 原文地址:https://www.cnblogs.com/yangzhilong/p/4335673.html
Copyright © 2020-2023  润新知