全局定义 Lomboks @ExtensionMethod
Globally define Lomboks @ExtensionMethod
是否可以为整个项目设置@ExtensionMethod?
例如,如果我使用方法 isNull() 扩展 Object,是否可以在整个项目中使用它,仅在例如配置 class 中定义 @ExtensionMethod 并在任何地方使用它而无需在每个 class?
这里是 Lombok 贡献者:
没有。主要原因是 'surprises' - lombok 将对一个源文件产生影响,该文件在其旁边的任何地方都有零次提到 lombok(没有类型或导入;lombok
的 CMD+F 会产生零结果),然而,没有它就无法编译。
Lombok 确实有一个配置系统 (lombok.config
),那将是定义一些完全限定的 class 名称的地方,这些名称将被视为所有 [=27] 的自动考虑的扩展方法来源=] 源文件在这个配置文件出现的目录和该目录的所有子目录中。但是,这个功能现在不存在,并且不会存在,直到我和其他主要贡献者就我们是否要打开这个蠕虫罐进行一些辩论。
一些中间相遇的解决方案,其中 是 'default extensions' 的列表,但您仍然需要通过注释 class 来启用它] 与 @DefaultExtensionMethods
或其他(或只是 @ExtensionMethod
仅此而已,没有参数)可能是我们划清界限的地方。我会记住的。
是否可以为整个项目设置@ExtensionMethod? 例如,如果我使用方法 isNull() 扩展 Object,是否可以在整个项目中使用它,仅在例如配置 class 中定义 @ExtensionMethod 并在任何地方使用它而无需在每个 class?
这里是 Lombok 贡献者:
没有。主要原因是 'surprises' - lombok 将对一个源文件产生影响,该文件在其旁边的任何地方都有零次提到 lombok(没有类型或导入;lombok
的 CMD+F 会产生零结果),然而,没有它就无法编译。
Lombok 确实有一个配置系统 (lombok.config
),那将是定义一些完全限定的 class 名称的地方,这些名称将被视为所有 [=27] 的自动考虑的扩展方法来源=] 源文件在这个配置文件出现的目录和该目录的所有子目录中。但是,这个功能现在不存在,并且不会存在,直到我和其他主要贡献者就我们是否要打开这个蠕虫罐进行一些辩论。
一些中间相遇的解决方案,其中 是 'default extensions' 的列表,但您仍然需要通过注释 class 来启用它] 与 @DefaultExtensionMethods
或其他(或只是 @ExtensionMethod
仅此而已,没有参数)可能是我们划清界限的地方。我会记住的。