报告类型为 java.lang.LazyConstant 且未被声明为 final 的字段。

另外,报告使用 List.ofLazy()Map.ofLazy() 初始化且被未声明为 final 的字段,因为这些集合在内部使用惰性常量。

根据 JEP 526: Lazy Constants,惰性常量必须存储在 final 字段中,以便 JVM 可以进行常量折叠优化。

正确用法:


  private final LazyConstant<Logger> logger = LazyConstant.of(() -> Logger.create(OrderController.class));

用法不正确(将被报告):


  private LazyConstant<String> x = LazyConstant.of(() -> "expensive string");

2026.1 最新变化