1、接口定义
public interface ConstantCode
{
public final static String OK = "ok";
}
接口的成员变量只能是常量,默认修饰符 public static final
看似正好符合常量的使用规范,但是接口的意义是可以被实现,而实现一个只有常量的接口没有实际意义,所以这种方式不推荐使用。
2、final class
public final class ConstantCode
{
private ConstantCode(){};
public final static String OK = "ok";
}
类定义成final且定义一个private的构造方法,防止其被继承和其实例化
3、枚举
public enum ConstantCode {
OK(200, "ok");
Integer code;
String name;
// 构造方法
ConstantCode(Integer code, String name) {
this.code = code;
this.name = name;
}
public static String getName(Integer code) {
for (ConstantCode evenEnum : ConstantCode.values()) {
if (evenEnum.getCode().equals(code)) {
return evenEnum.getName();
}
}
return null;
}
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
System.out.println(ConstantCode.getName(200));
得到结果:
ok