Sobes.tech
Junior — Middle

Կարող է լամբդա արտահայտությունը մուտք գործել այն փոփոխականին, որը հայտարարված է այն մեթոդի ներսում, որտեղ այն սահմանված է:

sobes.tech AI

Պատասխան AI-ից

Java- ի մեջ lambda արտահայտությունը կարող է մուտք ունենալ միայն այն տեղական փոփոխականին, որը հայտարարված է մեթոդում, միայն եթե այդ փոփոխականը արդյունավետորեն վերջնական է: Դա նշանակում է, որ սկզբնական արժեքից հետո փոփոխականի արժեքը չի փոխվում:

Օրինակ՝

public void օրինակ() {
    int թիվ = 10; // արդյունավետ վերջնական փոփոխական
    Runnable r = () -> System.out.printlnթիվ;
    r.run();
}

Եթե փորձեք փոխել թիվ-ը lambda- ի սահմանումից հետո, կոմպիլյատորը ցույց կտա սխալ:

Այս սահմանափակումը կապված է այն բանի հետ, որ lambda- ն կարող է գործարկել ավելի ուշ, և Java- ն պահանջում է, որ այդպիսի փոփոխականները լինեն անփոփոխ: