Java8对非最终变量的有效最终编译时间错误

Java8对非最终变量的有效最终编译时间错误,第1张

Java8对非最终变量的有效最终编译时间错误

您不能从lambda表达式主体更改局部变量。有几种方法可以解决此问题:

  • 在这种情况下,您可以设置为
    boolean required = !map.isEmpty();
    不包含任何lambda表达式。如果要基于某些条件进行设置,则可以使用Stream API:
    boolean required = map.entrySet().stream().anyMatch(entry -> ...);

此解决方案是最优选的。

  • required
    变量转换为封闭类的字段。

  • 最肮脏的方式:声明一个元素数组:

    boolean[] required = {false};
    并设置此元素:
    required[0] = true;



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5615850.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-15
下一篇2022-12-16

发表评论

登录后才能评论

评论列表(0条)

    保存