相关疑难解决方法(0)

Java8有效地对非最终变量进行最终编译时错误

我正在尝试将java8 forEach循环中的布尔变量更改为true,这是非final.但是我遇到了以下错误:在封闭范围内定义的局部变量必须是最终的或有效的最终.

如何解决此错误?

代码:

boolean required = false; 
Run Code Online (Sandbox Code Playgroud)

这是我在函数中创建的变量.

现在,当我试图改变它时:

   map.forEach((key, value) -> {
        System.out.println("Key : " + key + " Value : " + value);
        required = true;
    });
Run Code Online (Sandbox Code Playgroud)

我收到错误:在封闭范围内定义的本地变量必须是最终的或有效的最终.

为什么会出现此错误以及如何解决?

java lambda java-8

7
推荐指数
1
解决办法
1947
查看次数

Java 11 Lambda - 检查每个对象,满足第一个条件时返回 true,否则返回 false

我有一个方法,效果很好。这就是它的样子。

private boolean roomWithMoreThanTenFurnitures(Building building) {
if (building != null && building.hasRooms()) {
    for (Room room : building.getRooms()) {
        if (room.getFurnitures.size() > 10) {
            return true;
        }
    }   
}
return false;
}
Run Code Online (Sandbox Code Playgroud)

我想把它切换到 Lambda。uo 是用 shell 进来的,但是我不知道外面如何填写 if(条件) return true 或 return false。

building.getRooms().forEach(room -> {
//??
});
Run Code Online (Sandbox Code Playgroud)

java lambda java-11

0
推荐指数
1
解决办法
2449
查看次数

标签 统计

java ×2

lambda ×2

java-11 ×1

java-8 ×1