接口 VS 枚举,如何管理常量?
2023-12-25 23:50:15
你平时有哪种方式,管理常量呢?
- public static final关键字
- 接口:管理状态码或配置选项,需要在不同类中共享
- 枚举:管理有限的常量集合,具有相关的信息提示或描述
1.public static final关键字?
public class Demo{
public static fianl String RESULT_YES = "1";
public static fianl String RESULT_NO = "0";
}
// 实例
public static class DemoServiceImpl{
public static void main(String []arg){
System.out.println(Demo.RESULT_YES); // 执行结果:1
System.out.println(Demo.RESULT_NO); // 执行结果:0
}
}
2.接口?
public class Demo{
// public static fianl String RESULT_YES = "1";
// public static fianl String RESULT_NO = "0";
// 存储上报内容
public interface Uplink{
String HEARTBEAT = "01";
String FLOW = "03";
}
// 存储反馈的内容
public interface Downward{
String HEARTBEAT_BACK = "02";
String FLOW_BACK = "04";
}
}
// 实例
public static class DemoServiceImpl{
public static void main(String []arg){
System.out.println(Demo.Uplink.HEARTBEAT); // 执行结果:01
System.out.println(Demo.Uplink.FLOW); // 执行结果:03
System.out.println(Demo.Downward.HEARTBEAT_BACK); // 执行结果:02
System.out.println(Demo.Downward.FLOW_BACK); // 执行结果:04
}
}
3.枚举?
public class Demo{
public static fianl String RESULT_YES = "1";
public static fianl String RESULT_NO = "0";
public enum demo{
YES(200, "执行成功"), ERROR_500(500, "程序内部执行错误"), ERROR_404(404, "请求超时");
private final int code;
private final String desc;
demo(int code, String desc){
this.code = code;
this.desc = desc;
}
public int getCode(){
return code;
}
public String getDesc(){
return desc;
}
}
}
// 实例
public static class DemoServiceImpl{
public static void main(String []arg){
int code = demo.YES.getCode();
System.out.println(code);
String desc = demo.YES.getDesc();
System.out.println(desc);
}
}
这三种方法的使用场景是什么?
-
public static final 是最常用的常量表示方式,可以用在任意场合;
-
接口:定义的常量,可供多个类共享;比如,我们可以通过该方法,实现对tcp协议上行/下行数据,进行分类管理;
-
枚举:像错误码,这种需要内容描述的,使用枚举实现;例如,错误类型500/ 404/ 200/ 503…(详见上文例子)
文章来源:https://blog.csdn.net/weixin_46462532/article/details/135209678
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!