У меня есть эта проблема: я хочу выполнить сразу несколько потоков, используя for-loop. Я хочу передать переменную «i» методу в потоке. Но произошла ошибка, я не могу передать неопределенную переменную «i» в другой класс. Как я могу это исправить? Это мой код:Передача не конечного целого числа в другом классе
for (int i = 0; i < 4; i++) { // 4 THREADS AT ONCE
thread[i] = new Thread() {
public void run() {
randomMethod(i); // ERROR HERE
}
};
thread[i].start();
}
Создайте переменную 'final' внутри цикла, которая инициализируется значением' i', и передайте это вместо этого. –
@HuStmpHrrr, нет, этого будет недостаточно, вы не можете изменить значение конечной переменной! –
Вам не нужно его менять? Просто "final int k = i;" и передать k вместо i. Или создайте не анонимный подкласс класса и передайте i его конструктору. – JHH