我怀疑这是 IDEA 的 BUG,但是我翻遍全网没找到证据!
你好呀,我是歪歪。
前几天有朋友给我发来这样的一个截图:
他说他不理解,为什么这样不报错。
我说我也不理解,把一个 boolean 类型赋值给 int 类型,怎么会不报错呢,并接着追问
他:这个代码截图是哪里来的?
他说是 Lombok 的 @Data 注解自动生成的。
巧了,对于 Lombok 我之前有一点点了解,所以听到这个的答案的那一瞬间,电光火石
之间我仿佛明白了点什么东西:因为 Lombok 是利用字节码增强的技术,直接操作字节码
文件的,难道它可以直接绕过变量类型不匹配的问题?
但是很快又转念一想,不可能啊:这玩意要是都能绕过,Java 还玩个毛线啊。
于是我决定研究一下,最后发现这事儿其实很简单:就是 idea 的一个 bug。
复现
Lombok 插件我本来也再用,所以我很快就在本地复现了一波。
源文件是这样的,我只是加了 @Data 注解: