当前位置: 首页 > 知识库问答 >
问题:

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

毋修为
2023-03-14

下面是我的代码

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

错误:我在封闭范围中定义的局部变量必须是最终的或实际上是最终的

共有1个答案

陶成化
2023-03-14

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

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

有关其工作原理的详细说明,请参阅:Java8 Lambda变量范围

 类似资料:
  • 问题内容: 我有一个整数数组。 我想为每个X创建一个沿Y迭代的线程。我不知道如何将适当的X值传递给每个线程。 本质上我希望能够做到 任何帮助,将不胜感激 问题答案: 只值可以的方法和本地匿名内部类内被捕获。您需要按以下方式更改代码:

  • 问题内容: 看到: 问题在于,警报的item.id始终是数组中最后一个项目的ID(this.items)。怎么解决? 问题答案: 这里的问题是变量随每个循环而变化。在以后参考时,将使用其保留的最后一个值。您可以使用一种称为闭包的技术(本质上是一个返回函数的函数)来快速确定变量的范围。 旁注我看到您在这里有jQuery。它具有可以与数组一起使用的辅助函数,并且可以作为简单的for/each循环的快捷

  • 是否可以从一个地方访问不同应用。属性的环境变量。实际上,我们正在构建这个软件,我们有不同的应用。不同项目的属性,如用户资产。因此,是否有可能将所有环境变量放在一个外部位置。如果是,将如何访问?

  • 我正在迭代JSON数据,获取数据并将其赋值给一个全局变量,当我在循环内打印变量时,我得到了所有数据,然而,当我在循环外打印变量时,我只得到了JSON对象的最后一些数据。我的目标是获取数据并将其作为函数的参数传递。我如何获取循环之外的所有数据?

  • 问题内容: 如何在Java的do-while循环内部访问变量? 下面的代码写出一个值,直到输入的值不在0到10之间为止。 这是我的代码: 只要输入在0到10之间,循环就会继续要求输入。一旦输入其他数字,循环就会终止并显示所有输入数字的总数。 问题答案: 尝试一下(在循环外将变量声明为a):

  • 这个问题是针对Java的 下面是一个例子: