使用Java中的注释使所有参数最终

时间:2015-05-16 06:06:26

标签: java annotations lombok

我最近一直在使用Lombok - 我想知道可以提供一个类级别或方法级别的注释,它可以为所有参数添加final。例如:

@finalizer
void foo(Bar bar);

变为

void foo(final Bar bar);

1 个答案:

答案 0 :(得分:1)

有可能。 Lombok可以做到这一点,FieldDefaults注释已经允许默认情况下创建所有字段final。为参数执行此操作会更容易。虽然字段上的final是JVM处理的内容(通过不允许赋值并在构造函数的末尾发出写入障碍),但final on parameters只是编译时功能。

这是不可能的。龙目岛目前没有这样做,作者的opinion是没有意义的。

AFAIK有一些工具可以强制执行final个参数。

我个人最开心的是,如果在Java中默认情况下一切都是final,可以使用var之类的内容覆盖。但这个想法来得太迟了20年。