工作项目中的 online 和 room 有使用到反射,在一次加需求的时候,发现了某实现类中有众多if else,看着实在难受。于是,手动"优化"成switch,结果发现 online 和 room 启动报错了。一开始怎么也没想到是众多if else改成switch造成的。直到发现输出class文件的目录下多了个RoomHandlerImpl$1.class如图:

然后反编译后就会看见$SwitchMap$yourCase'Enumeration,你case的枚举元素就会在这个类中。后来发现只要使用了switch case枚举,就会生成这么一个synthetic类 所以,在长连接服务器启动的时候会扫描指定包下的类,然后调用newInstance方法。问题就出在这儿了,因为该类是synthetic,无法被实例化,所以会产生java.lang.InstantiationException,定位到问题,结束!

可能很多人没有见过synthetic类,特地补上,如下:

转载于:https://juejin.im/post/5cfe06b8e51d4555fd20a312

switch和枚举的小坑相关推荐

  1. golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF

    golang原生库mime/multipart上传formdata文件的一个小坑unexpected EOF 遇到的问题 问题代码 问题分析 正确代码 总结 遇到的问题 用mime/multipart ...

  2. net core mysql 连接池_EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽

    EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽 发布时间:2019-02-18 22:05, 浏览次数:1152 , 标签: EF Core DbContextPool ...

  3. mciSendString 的两个小坑

    刚刚修正了自己用的小闹钟的代码. 坑1:REPEAT 选项的作用范围 原来用得好好的,之后选择 .wav 文件,居然不出声音了-- 诶,MCI 肯定支持 .wav 的啊-- 仔细想想,我以前都是选 . ...

  4. 小坑记录:get_cmap参数区分大小写

    小坑记录: plt.cm.get_cmap('spectral', 10) File "C:\Users\sanye\AppData\Local\Programs\Python\Python ...

  5. ThinkPHP开发中遇到的小坑

    TP不得不说是现在来说最好用的框架了,但是也不能不承认它还是有一些小坑需要填了. 1.坑爹的字段缓存机制 thinkphp为了高效的读取数据库,更快的打开网页,加入了字段缓存这个机制,其实来说是挺好的 ...

  6. java 小坑_关于Java子父类关系的小坑

    原标题:关于Java子父类关系的小坑 学过JavaSE的都知道java类在初始化的时候,如果存在直接父类,是先初始化父类,然后才初始化子类. 子类拥有父类所有的非私有化成员,非私有的成员不仅仅包括pu ...

  7. C#中的Infinity有个小坑

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 昨天家里有事,上网也不方便,就没有推送文章.今天很累,也不长篇大论了.简单介绍一下最近遇到的 ...

  8. spring + maven项目 互相依赖的小坑

    在项目的搭建的过程中,出现了某个被依赖的项目,打包都是成功的,但是依赖的它的项目在编译的时候出现了问题,综合网上的解决方案,终于找到了一个可行的方法. 摘自 https://blog.csdn.net ...

  9. EF Core 小坑:DbContextPool 会引起数据库连接池连接耗尽

    DbContextPool 是 ASP.NET Core 2.1 引入的新特性,可以节省创建 DbContext 实例的开销,但没有想到其中藏着一个小坑. 最近有一个 ASP.NET Core 项目持 ...

最新文章

  1. 自己写的一个抢票加速的Python小程序源码分享-----纯属娱乐
  2. NumPy快速入门-- Less 基础/线性代数
  3. java 的io流需要学吗_Java的IO流之字节流,必须要学得内容,你会嘛?
  4. LoadRunner实战
  5. Spark Structured Straming:'writeStream' can be called only on streaming Dataset/DataFrame
  6. maven项目打包时生成dependency-reduced-pom.xml
  7. 跑酷游戏的一些bug总结(滥用FixedUpdate的坑)
  8. 【Css】Css实现DIV半透明效果(示例)
  9. 床长人工智能教程 - 目录
  10. Metasploitable2虚拟机镜像下载地址
  11. Redis(八):zset/zadd/zrange/zrembyscore 命令源码解析
  12. php内外边距,CSS 内边距
  13. python桌面界面开发在那种编译器写代码_Python智慧编程——第1讲 遇见Mu editor
  14. 现代信号处理——时频分析与时频分布(时频分布的基本理论)
  15. IDEA插件系列(87):Base64 image encoder插件——以base64编码的形式查看图像
  16. image “pyimage2“ doesn‘t exist
  17. 如何使用创意AI破解FB广告
  18. 超静音服务器性能强,超静音办公室专用 戴尔T20微服务器评测
  19. three.js流动线
  20. DOS命令大全(转载)

热门文章

  1. 现代软件工程讲义 5 团队合作的阶段
  2. 线程间操作无效:从不是创建控件的线程访问它的三种方法
  3. this Activity.this Activity.class
  4. win7安装MongoDB学习笔记
  5. 守住你的网站:防御DDoS***指南
  6. 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路(1)
  7. 微服务实战(六):选择微服务部署策略
  8. 方法总比困难多_只是为了生活
  9. 《Servlet和JSP学习指南》一第2章 Session管理 2.1 网址重写
  10. nginx访问日志,错误日志参数说明