除了常量池,java中还有常量类,那么,常量类是做什么用的呢?小伙伴们知道吗?本篇文章就来听小编讲解讲解。
类常量
代码:
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, "协议包含非法字符"); } }
枚举
所有的枚举类都是Enum类的子类,所以可以使用枚举类调用Enum的方法。
代码:
public enum Season { SPRING , SUMMER , AUTUMN , WINTER }
应用:可以直接使用属性,也可以调用Enum的方法如values方法
System.out.println(Season.AUTUMN); System.out.println(Season.values()); Season[] values = Season.values(); System.out.println(values[0]);
我们可以在枚举类中添加一些构造器、方法和域:
私有化构造器,构造器只是在构造枚举常量的时候被调用如SMALL(“S”)
/** * 衣服尺寸 */ public enum Size { SMALL("S") , MEDIUM("M") , LARGE("L") , EXTRA_LARGE("XL"); /** * 缩写 */ private String suoxie; private Size(String suoxie) { this.suoxie = suoxie; } public String getSuoxie() { return suoxie; } public static void main(String[] args) { //1:toString()方法返回常量的名 System.out.println(Size.SMALL.toString()); //SMALL //2:valueOf() System.out.println(Size.valueOf("LARGE")); //3:values:返回每个常量名 //SMALL MEDIUM LARGE EXTRA_LARGE Size[] sizes = Size.values(); /*for (Size size : sizes) { System.out.println(size); }*/ //4:ordinal 返回常量的位置,从0开始 System.out.println(Size.LARGE.ordinal()); int i = Size.EXTRA_LARGE.compareTo(Size.EXTRA_LARGE); System.out.println(i); System.out.println(Size.LARGE.getSuoxie()); } }
以上就是本篇文章的所有内容,如果想了解更多编程相关常见问题的话,就快请关注本网站吧。
推荐阅读: