Junior — Middle
Java-da dəyişən üçün 'effectively final' açar sözünün istifadəsi nə deməkdir?
sobes.tech Süni İntellekt
AI-dan cavab
В Java переменная считается "effectively final" (эффективно финальной), если после её инициализации значение этой переменной не изменяется, хотя она и не объявлена с ключевым словом final.
Это важно, например, при использовании локальных переменных внутри лямбда-выражений или анонимных классов — такие переменные должны быть либо явно final, либо "effectively final".
Пример:
int x = 10; // переменная не объявлена final
Runnable r = () -> System.out.println(x); // x используется в лямбде
// если после этого x не изменяется, то она считается effectively final
Если попытаться изменить x после использования в лямбде, компилятор выдаст ошибку. Это ограничение помогает избежать проблем с изменяемым состоянием в замыканиях.