gpt4 book ai didi

java - 使用 Lombok 生成行号

转载 作者:搜寻专家 更新时间:2023-10-31 20:32:43 25 4
gpt4 key购买 nike

java 类中使用 lombok 会导致 stacktrace 中的行号错误吗?假设:代码中没有使用 delombok

Lombok 不会中断行号生成,但它会在放置注释的任何地方生成代码。这些行号。将是字节码的一部分,因此在打印 stacktrace 时,它将包含错误的行号。我的上述解释是否正确?

最佳答案

Java 编译器根据.java 源代码文件的实际行数将行号存储在.class 文件中。

Lombok Hook 到编译过程本身,即时修改写入 .class 文件的字节码。它实际上从不向 .java 源文件添加文本,也不会更改编译器存储在 .class 文件中的行号信息。

因此,堆栈跟踪中的行号始终与实际的 Java 源代码匹配。


注意:问题排除了“delombok”的情况。对于有兴趣的读者:您可以使用“delombok”插件来生成纯 .java 代码,其中包含 Lombok 在编译期间将放入的所有内容。该工具适用于从代码库中删除 Lombok 或将源代码提供给被 Lombok 内容混淆的分析器工具等情况。在这种情况下,您最终会得到不同的、更大的 .java 源文件,它们当然具有不同的行号。

关于java - 使用 Lombok 生成行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37908097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com