Почему переменные, передаваемые в runnable, должны быть окончательными?

Если у меня есть, скажем, переменная int x = 1, и я объявляю runnable в основном потоке и хочу передать x методу run()runnable, его нужно объявить final. Почему?

final int x = 0;//<----must be final...
private class myRun implements Runnable {

    @Override
    public void run() {
        x++;//
    }

}
11
задан ROMANIA_engineer 7 December 2016 в 13:46
поделиться