除了常量池,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 RESP_INFO = new HashMap ();
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());
}
}
以上就是本篇文章的所有内容,如果想了解更多编程相关常见问题的话,就快请关注本网站吧。
推荐阅读: