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)
感谢各位大佬啦
-----------------------记录解决方式---------------------------------
利用反射破坏枚举类的单例模式
像采纳答案老哥说的一样,常量和枚举类应该是最终的,不应该改变.