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。
版权声明:本文为chenkaibsw原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。