【问题标题】:How Lombok generates code onto existing class? [duplicate]Lombok 如何在现有类上生成代码? [复制]
【发布时间】:2017-03-16 23:41:53
【问题描述】:

我可以使用注释处理器从头开始生成类,但我无法像 lombok 那样修改类。我已经在 android studio 中搜索了 lombok 生成的类,但是我什么也没找到。然后我通过他们的网站检查了龙目岛的概述,并在论坛中对其进行了调查,但我最终还是一无所获。我的问题其实很简单。例如,当我使用 @Setter 时,lombok 如何将生成的代码与地雷统一起来。如何开发处理器之类的?

【问题讨论】:

    标签: java android annotations lombok


    【解决方案1】:

    看起来像 How does lombok work? 的副本,我会标记为被骗,但你的赏金阻止了它。

    简而言之,Lombok 实际上根本不生成代码。相反,它使用未指定和未记录的内部编译器实现 api 调用来直接修改程序在读取源代码和输出编译后的字节码之间的抽象语法树。在更新到新的编译器版本时,它可能会在没有警告或通知的情况下中断,但目前没有其他方法。

    【讨论】:

    【解决方案2】:

    Lombok 在编译阶段生成代码。这是http://hannesdorfmann.com/annotation-processing/annotationprocessing101的教程。

    如果您不熟悉声明自己的注解,我强烈建议您开始使用运行时注解。它们更易于理解和调试,并且您的代码在您已经熟悉的运行时阶段“执行”。一个简短的教程:http://docs.oracle.com/javase/1.5.0/docs/guide/language/annotations.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-10-09
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 2022-01-18
      • 1970-01-01
      • 2020-09-23
      相关资源
      最近更新 更多