lombok在java课堂上使用会导致错误的行号stacktrace吗?假设:delombok代码上没有使用过.
Lombok不会中断,line number generation但它会在注释放置的任何地方生成代码.这些行没有.将是字节代码的一部分,因此当stacktrace打印时,它将包含错误的行号.我的上述解释是否正确?
.classJava编译器根据源代码文件的实际行数将行号存储在文件中.java。
.classLombok 挂钩编译过程本身,修改动态写入文件的字节码。它实际上从未将文本添加到.java源文件中,也不会更改编译器存储在.class文件中的行号信息。
因此,堆栈跟踪中的行号始终与实际的 Java 源代码匹配。
注:该问题排除了“delombok”的情况。对于感兴趣的读者:您可以使用“delombok”插件生成纯.java代码,其中包含 Lombok 在编译期间放入的所有内容。该工具适用于从代码库中删除 Lombok 或将源代码提供给被 Lombok 内容混淆的分析工具等情况。在这种情况下,您最终会得到不同的、更大的.java源文件,它们当然具有不同的行号。
| 归档时间: |
|
| 查看次数: |
518 次 |
| 最近记录: |