0

我正在从 Scala 过渡到 Java,并且默认情况下错过了最终参数。我在此处探索了 Lombok 库的实验版本(此处为背景信息),其中包含暗示此功能的文件:

src/core/lombok/experimental/FinalArgs.java ”、“ src/core/lombok/javac/handlers/HandleFinalArgs.java ”、“ src/core/lombok/eclipse/handlers/HandleFinalArgs.java

我从来没有用 Java 写过太多的反射或注释,所以请指出任何能够弄清楚如何在我当前的 Java 项目中使用 @FinalArgs 注释的人(未连接到 Lombak - 我的团队不愿意使用修改/自定义Lombak 版本)。一等奖给任何能解释发生了什么的人。

4

2 回答 2

1

如果不执行 Lombok 所做的操作(在 IDE 中安装插件并可能安装 vm 代理),您将无法获得这样的注释。

但是,您可以将大多数 IDE 设置为在重新分配参数时向您发出警告或错误。

使它们真正成为最终版本并没有进一步的好处。JIT 足够聪明,可以自己解决这个问题。

于 2017-02-12T21:04:05.923 回答
0

Lombok 不会添加此功能。您可以指示您的 IDE 或静态源分析器生成警告,但从 java8 开始,将变量和参数设置为 final 并没有额外的好处。如果它们实际上是最终的(从不重新分配),则它们可以在 lambda 和匿名内部类中使用,就好像它们是最终的一样。

于 2017-02-13T21:24:39.037 回答