您不能从lambda表达式主体更改局部变量。有几种方法可以解决此问题:
- 在这种情况下,您可以设置为
boolean required = !map.isEmpty();
不包含任何lambda表达式。如果要基于某些条件进行设置,则可以使用Stream API:boolean required = map.entrySet().stream().anyMatch(entry -> ...);
此解决方案是最优选的。
将
required
变量转换为封闭类的字段。最肮脏的方式:声明一个元素数组:
boolean[] required = {false};并设置此元素:required[0] = true;



