public static void main(String[] args) {
List<String> numList = Arrays.asList("1", "2", "3");
Holder holder = new Holder(0);
int i = 0;
numList.forEach(e -> {
if("1".equals(e)){
i++;
}
});
System.out.println(i);
}
在lambda表达式中要求变量i是final修饰,如果修饰为final,就不能对i进行++操作。
解决方式:
定义是Holder类,使用Holder中的value属性进行操作。
class Holder{
int value;
Holder(int value){
this.value = value;
}
}
public static void main(String[] args) {
List<String> numList = Arrays.asList("1", "2", "3");
Holder holder = new Holder(0);
numList.forEach(e -> {
if("1".equals(e)){
holder.value++;
}
});
System.out.println(holder.value);
}
参考: redis深度历险,优雅的使用Jedis。