Java常量类的几种实现方式

接口常量

直接在接口中定义常量

public interface Constants {

        /** 
         * 中心
         */
        public static final int CENTER = 0;

        /** 
         * 顶部
         */
        public static final int TOP = 1;
        /** 
         * 左边
         */
        public static final int LEFT = 2;
       
       //。。。省略其他代码
   }

接口中定义静态内部类

public interface Constants {

       /**
     * 
     * 公共常量
     *
     */
    public static class Public {
        public static final String ID = "TESTID";
    }
    
    /**
     * 颜色类型
     */
    public static class ColorType {
        public static final String RED = "red"; 
        public static final String GREEN = "green"; 
    }
       
       //。。。省略其他代码
   }

不能在接口中定义静态代码快。

常量类

public class ResponseCode {

    /** 系统处理正常 */
    public static final int SUCCESS_HEAD = 0;

    /** 系统处理未知异常 */
    public static final int EXCEPTION_HEAD = 1;

    /** JSON解析错误 */
    public static final int JSON_RESOLVE = 2;

    /** 类型不匹配 */
    public static final int TRANSTYPE_NO = 3;

    /** Head - messageID未赋值 */
    public static final int HEAD_messageID = 4;

    /** Head - timeStamp未赋值 */
    public static final int HEAD_timeStamp = 5;

    /** Head - messengerID未赋值 */
    public static final int HEAD_messengerID = 6;

    /** Head - transactionType 未赋值 */
    public static final int HEAD_transactionType = 7;

    /** digest校验不通过 */
    public static final int HEAD_DIGEST = 8;
    
    /** src校验不通过 */
    public static final int HEAD_SRC_NULL = 10;
    
    /** 协议包含非法字符 */
    public static final int ILLEGAL_MESSAGE = 11;

    /** 数据库异常 */
    public static final int DATABASE_EXCEPTION = 9;
    public static final Map<Integer, String> RESP_INFO = new HashMap<Integer, String>();

    static {
        // Head 相关
        RESP_INFO.put(SUCCESS_HEAD, "系统处理正常");
        RESP_INFO.put(EXCEPTION_HEAD, "系统处理未知异常");
        RESP_INFO.put(JSON_RESOLVE, "JSON解析错误");
        RESP_INFO.put(TRANSTYPE_NO, "类型不匹配");
        RESP_INFO.put(HEAD_messageID, "messageID未赋值");
        RESP_INFO.put(HEAD_timeStamp, "timeStamp未赋值");
        RESP_INFO.put(HEAD_messengerID, "messengerID未赋值");
        RESP_INFO.put(HEAD_transactionType, "transactionType未赋值");
        RESP_INFO.put(HEAD_DIGEST, "digest校验不通过");
        RESP_INFO.put(DATABASE_EXCEPTION, "数据库异常");
        RESP_INFO.put(HEAD_SRC_NULL, "src未赋值");
        RESP_INFO.put(ILLEGAL_MESSAGE, "协议包含非法字符");
        
    }
}

这种方法可以在类里面定义静态代码快。

枚举类

枚举类列举常量

ublic enum Size {
    SMALL("S"),
    MEDIUM("M"),
    LARGE("L"),
    EXTRA_LARGE("XL");
}

在类里面创建枚举类

public class Constants {

    /**
     * 订单状态
     */
    public static enum OrderStats{
        
        DELETE(0,"删除"),RESERVE(1,"订单预定"),CONFIRM(2,"订单确认"),COMPLETE(3,"订单完成"),CLOSE(4,"订单关闭");
        
        private final Integer value;
        private final String name;
        
        private OrderStats(Integer value,String name){
            this.value = value;
            this.name = name;
        }
        
        public Integer getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
        
    }
    /**
     * 性别
     * <p>Company:rayootech</p>
     * @author zhangxueshen
     * @date 2016-6-14
     */
    public static enum sex{
        
        MAN("1","男"),FEMAN("2","女");
        
        private sex(String value,String name){
            this.value = value;
            this.name = name;
        }
        private final String value;
        private final String name;
        
        public String getValue() {
            return value;
        }

        public String getName() {
            return name;
        }
        
    }
}

这种方式可以将很多的字典枚举放到同一个类里面。推荐使用这种方式

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值