java 枚举类 switch不进case 记一次部署时的坑

最近在部署项目时,采用替换class文件形式 ,新增一个枚举字段 case节点 linux生产上发现不进case,本地windows是正常的,刚好枚举类字段是65个 网上查资料 推荐枚举推荐不超过64个,导致被误导,误以为字段个数过多会有不一样的编译或者在linux环境上 编译会有什么不一样的地方。
替换的class文件假设叫xxx.class 发现同目录下有xxx$1.class文件,当时看了一眼 以为是动态代理生成的文件 也没在意。
解决问题:第一想法是switch string字段名 想到switch string是在jdk7之后才有的 避免节外生枝 干脆用if else 比较string 解决了这个问题,问题是解决了 但是疑惑还一直在。后来在本地模拟时,发现也会生成一个 $1.class文件 这里面是存的枚举信息 恍然大悟 ,新增的枚举字段信息 自然也是存在这个文件里面,而部署时 由于本地没找到xxx$1.class,直接把xxx.class替换 上去 最终导致不进入case。 为了避坑,建议还是用if else 字符串形式写!
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孟秋与你

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值