본문 바로가기

Java

람다 표현식

728x90
package section_1;

import java.util.function.*;

public class Foo {
    public static void main(String[] args) {
        Foo foo = new Foo();
        foo.run();
    }

    private void run() {
        int baseNumber = 10;

        // 로컬 클래스 - 쉐도잉
        class LocalClass {
            void printBaseNumber() {
                int baseNumber = 11;
                System.out.println(baseNumber);
            }
        }

        // 익명 클래스 - 쉐도잉
        Consumer<Integer> integerConsumer = integer -> {
            int baseNumber1 = 11;
            System.out.println(baseNumber1);
        };

        // 람다 - 쉐도잉 x
        Function<Integer, Integer> function = (i) -> {
            // int baseNumber = 11; - 이미 선언되었다고 나옴
            System.out.println(baseNumber);
            return i;
        };

    }
}

- Java에서는 람다를 사용할 경우에, 같은 변수를 사용할 수 없음 (쉐도잉 x)

- 스콥이 결정적으로 람다를 사용한 스콥이랑 동일함

300x250

'Java' 카테고리의 다른 글

인터페이스  (0) 2023.07.27
메소드 레퍼런스  (0) 2023.07.09
Java의 함수형 인터페이스  (0) 2023.07.09
함수형 인터페이스와 람다 표현식  (0) 2023.07.06
비즈니스 요구사항 설계  (0) 2022.07.20