더북(TheBook)

자바에 람다 표현식이 생기기 전에는 익명 클래스가 러너블(runnable), 비교자(comparator), 함수 객체(functional object)를 만드는 가장 간결한 문법이었다. 레거시 코드에서 종종 익명 클래스를 보게 될 것이다.

람다 표현식이 있는 요즘에는 앞의 예제처럼 메서드를 두 개 이상 제공해야 할 때만 익명 클래스가 필요하다. 연습문제 16처럼 IntSequence 인터페이스가 기본 메서드인 hasNext를 포함한다면, 다음과 같이 간단히 람다 표현식을 사용한다.

public static IntSequence randomInts(int low, int high) {

    return () -> low + generator.nextInt(high - low + 1);

}

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.