Sobes.tech
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.