yanjianpeng_2018 2019-11-27 10:25 采纳率: 100%
浏览 216
已采纳

关于java枚举类的疑惑

1.问题环境
有个自定义异常类(zrj-base-api包的AppException),这个类中有一个构造器的参数是枚举类.枚举类继承了(zrj-base-api包中的ErrorEnumInterface).属性是code和desc
spring+springboot
图片说明

2.问题描述
在某个流程中获取一个枚举实例,将枚举的desc属性重新赋值,

TaskRetEnums t = TaskRetEnums.SELECTION;
t.setDesc(t.getDesc+"  abc");

返回异常AppException,用带有枚举的构造器,

  throw new AppException(t);

此时返回的整体数据:

{
    "time": 1574843467478,
    "status": "6006",
    "message": "枚举desc原本内容  abc",
}

再触发一次这个流程返回的整体数据

{
    "time": 1574843467478,
    "status": "6006",
    "message": "枚举desc原本内容  abc  abc",
}

发现多了一个abc

3 疑惑
(1)这个枚举类是单例模式么?
(2)如何能让后边返回的数据只有一个追加内容(只有一个abc),最好是正面解决问题,就别是拼接字符串这样,让每个枚举类实例化后都是一个样子(不带追加的abc)

感谢各位大佬啦

-----------------------记录解决方式---------------------------------

图片说明

利用反射破坏枚举类的单例模式
像采纳答案老哥说的一样,常量和枚举类应该是最终的,不应该改变.

展开全部

  • 写回答

2条回答 默认 最新

  • lppzyt 2019-11-28 01:59
    关注

    判断一下t.getDesc.contains("abc")。是否包含abc包含的话则不在设置。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)
编辑
预览

报告相同问题?

悬赏问题

  • ¥15 开发板和电机具体的参数?
  • ¥100 如何对超大数据分段并进行对比处理
  • ¥50 mmc在一个管理单元检测到错误
  • ¥15 如何正确使用pyside6,使其符合LGPL?
  • ¥15 百度网盘app文件浏览效果怎么做?
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥100 如何快速统计出一亿行由0和1组成的数字里面的1连续出现几次及标记后出现的次数?
  • ¥15 include 头文件引用出错问题
  • ¥15 MATLAB并行池出问题
  • ¥15 本地运行成功上传到洛谷上却WA?
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部