Junior — Middle
Lambda ifodasi uning ta'riflangan metod ichida e'lon qilingan o'zgaruvchiga kirish mumkinmi?
sobes.tech AI
AIdan javob
Java'da lambda ifodasi, metodda e'lon qilingan mahalliy o'zgaruvchiga faqat bu o'zgaruvchi efektiv ravishda final bo'lsa kirish mumkin. Bu, o'zgaruvchining boshlang'ich qiymati belgilanganidan keyin o'zgarmasligini anglatadi.
Misol:
public void misol() {
int raqam = 10; // effektiv ravishda final o'zgaruvchi
Runnable r = () -> System.out.println(raqam);
r.run();
}
Agar lambda aniqlashdan so'ng raqamni o'zgartirishga harakat qilsangiz, kompilyator xato beradi.
Ushbu cheklov, lambda keyinchalik bajarilishi mumkinligi bilan bog'liq bo'lib, o'zgaruvchan holat muammolarini oldini olish uchun Java bunday o'zgaruvchilarni o'zgarmas qilishni talab qiladi.