자바에 람다 표현식이 생기기 전에는 익명 클래스가 러너블(runnable), 비교자(comparator), 함수 객체(functional object)를 만드는 가장 간결한 문법이었다. 레거시 코드에서 종종 익명 클래스를 보게 될 것이다.
람다 표현식이 있는 요즘에는 앞의 예제처럼 메서드를 두 개 이상 제공해야 할 때만 익명 클래스가 필요하다. 연습문제 16처럼 IntSequence 인터페이스가 기본 메서드인 hasNext를 포함한다면, 다음과 같이 간단히 람다 표현식을 사용한다.
public static IntSequence randomInts(int low, int high) {
return () -> low + generator.nextInt(high - low + 1);
}