Language 초급

익명 클래스에서 람다와 메서드 참조로

단일 메서드 익명 클래스를 간결한 람다와 메서드 참조로 대체합니다.

✕ Anonymous class
button.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent event) {
        save(event);
    }
});
✓ Java 8+
button.addActionListener(this::save);
이 코드에 문제가 있나요? 알려주세요.
⚡

더 적은 상용구 코드

클래스 선언과 메서드 재정의에 필요한 형식적인 코드를 제거합니다.

👁

더 나은 가독성

수행되는 작업 자체에 집중할 수 있습니다.

🔒

여전히 타입 안전

컴파일러가 대상 함수형 인터페이스의 시그니처를 검사합니다.

이전 방식
익명 클래스
모던 방식
메서드 참조
JDK 버전
8
난이도
초급
익명 클래스에서 람다와 메서드 참조로
사용 가능

JDK 8 (2014년 3월) 이후 사용 가능.

함수형 인터페이스는 람다 또는 메서드 참조로 구현할 수 있습니다. 정적 타입 검사와 동일한 콜백 계약은 유지하면서 익명 클래스의 상용구 코드를 제거합니다.