当前位置: 首页 > 面试题库 >

在内部类中访问for循环变量

郭知
2023-03-14
问题内容

我有一个整数数组。

DataArray[X][Y]

我想为每个X创建一个沿Y迭代的线程。我不知道如何将适当的X值传递给每个线程。

本质上我希望能够做到

ExecutorService threadPool = Executors.newFixedThreadPool(10);
for (int i = 0; i < X; i++) {
  threadPool.submit(new Runnable() {
    public void run() {         
      Function_to_run(i);
    }
  });
}

任何帮助,将不胜感激


问题答案:

final值可以的方法和本地匿名内部类内被捕获。您需要按以下方式更改代码:

for (int i = 0; i < X; i++) {
        final int index = i;
        threadPool.submit(new Runnable() {
             public void run() {

                  Function_to_run(index);

         }
     });


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

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

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

  • 问题内容: 我正在尝试创建一个JLabel数组,当单击它们时,所有这些标签都应该变为不可见。当试图通过需要访问用于声明标签的循环的迭代变量的内部类设置鼠标侦听器时,就会出现问题。代码是不言自明的: 我以为我可以通过使用内部方法中的(或代替)内部调用来克服此问题,但我一直无法弄清楚。 编译错误是:从内部类内部访问局部变量i;需要宣布为最终` 我敢肯定,答案一定是我从未想过的愚蠢之举,或者我犯了一些小

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

  • 问题内容: 在内部类中,可以访问外部类的变量,但不能访问方法的局部变量。我了解了无法访问方法的局部变量的部分,但我想知道为什么外部类变量可以访问? 我的理解是,由于内部类与外部类绑定,因此只要父级可用,子级就可以访问其父级变量。我对么? 问题答案: 假设您的外部类在内部类的范围内(非静态)被称为,以获取该字段。 例如, 其中Outer是类的名称,并标识该字段。 您也可以直接抓取它,但是如果由于阴影