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