짧은 동작을 값처럼 전달해 정렬·필터·콜백에 사용합니다.
람다는 함수형 인터페이스의 단일 추상 메서드 구현을 간결하게 만듭니다. Predicate, Function, Consumer, Supplier가 대표적이며 Type::method 메서드 참조도 사용할 수 있습니다.
longName은 길이가 5 이상인지 판단하는 Predicate라서 Java(4자)와 CSS(3자)는 걸러지고 10자인 JavaScript만 통과합니다. String::toUpperCase는 각 문자열에 toUpperCase()를 호출하는 람다를 줄여 쓴 메서드 참조이고, System.out::println이 결과를 하나씩 출력해 JAVASCRIPT 한 줄이 나옵니다. Predicate는 and, or, negate로 다른 조건과 조합할 수도 있습니다.
람다가 바깥 지역 변수를 캡처하려면 해당 변수는 final 또는 effectively final이어야 합니다.
복잡한 람다는 이름 있는 메서드로 추출해 stack trace, 테스트와 재사용성을 개선합니다.
람다 안에서 공유 변경 상태를 수정하면 병렬 처리와 재시도에서 결과가 불안정해집니다.
직접 바꿔보세요문자열 길이 기준 정렬을 메서드 참조와 람다로 작성하세요.
실행 버튼을 누르면 결과가 여기에 표시됩니다.