0%

编译好的 Java 类可以绕过类型检测?

问题记录:

在做项目重构的时候遇到如下问题,repo1 下有 class A, 重构时我们在 repo1 中抽象出一个 interface FA 实现 A 的所有的方法,然后修改外部引用使 A 解偶。其中发现一个很有趣的现象,原先 repo2 使用 A 编译出来的 jar, 不做任何修改还是可以和 FA 源码进行编译,但是使用 repo2 的源码和 FA 源码进行编译会抛 mismatch 的 exception。猜测和 Java 编译规则有关系,难道是编译后的文件其实是一样的,所以原来的 jar 可以通用,但是源码的话和编译规则有冲突会挂。

本地试了下,并不能重现,不清楚是重现的不对还是公司的项目有什么特殊的处理方式,有机会再看看把 ╮( ̄▽ ̄””)╭