我最近一直在使用Lombok - 我想知道可以提供一个类级别或方法级别的注释,它可以为所有参数添加final。例如:
@finalizer
void foo(Bar bar);
变为
void foo(final Bar bar);
答案 0 :(得分:1)
有可能。 Lombok可以做到这一点,FieldDefaults注释已经允许默认情况下创建所有字段final
。为参数执行此操作会更容易。虽然字段上的final
是JVM处理的内容(通过不允许赋值并在构造函数的末尾发出写入障碍),但final
on parameters只是编译时功能。
这是不可能的。龙目岛目前没有这样做,作者的opinion是没有意义的。
AFAIK有一些工具可以强制执行final
个参数。
我个人最开心的是,如果在Java中默认情况下一切都是final
,可以使用var
之类的内容覆盖。但这个想法来得太迟了20年。