Sobes.tech
Junior — Middle

Оё изрази lambda метавонад ба тағйирёбие, ки дар дохили усуле, ки дар он муайян шудааст, эълон шудааст, дастрасӣ пайдо кунад?

sobes.tech AI

Ҷавоб аз AI

Эҳёлии lambda дар Java метавонад ба тағйирёбандаи маҳаллӣ, ки дар усул эълон шудааст, танҳо агар он тағйирёбанда эффективан финал бошад, дастрасӣ пайдо кунад. Ин маъно дорад, ки пас аз оғозёбӣ, арзиши тағйирёбанда тағйир намеёбад.

Масалан:

public void мисол() {
    int рақам = 10; // тағйирёбандаи эффектан финал
    Runnable r = () -> System.out.println(рақам);
    r.run();
}

Агар кӯшиш кунед, ки рақам-ро пас аз муайян кардани lambda тағйир диҳед, компилятор хато медиҳад.

Ин маҳдудият бо он алоқаманд аст, ки lambda метавонад дертар иҷро шавад, ва барои пешгирӣ аз мушкилоти бо ҳолати тағйирёбанда, Java талаб мекунад, ки чунин тағйирёбандаҳо беэътибор бошанд.