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 最新变化