如何在java8中访问for循环的外部变量?

时间:2017-11-15 05:51:04

标签: java lambda java-8

以下是我的代码

List<Lead> Mylead = adminService.GetMyData(10);
int i=0;
Mylead.forEach(lead->{
  i++;
});
  

错误:我在封闭范围内定义的局部变量必须是最终的   或有效的最终

1 个答案:

答案 0 :(得分:1)

你必须为i创建一个包装器,一个简单的方法就是一个数组。

List<Lead> Mylead = adminService.GetMyData(10);
final int[] i={0};
Mylead.forEach(lead->{
  i[0]++;
});

如需详细说明,请参阅:Java 8 Lambda variable scope