더북(TheBook)

3.8.2 함수를 수정하는 메서드


앞에서 작성한 메서드는 오름차순 또는 내림차순 문자열 비교자를 돌려준다. 문자열 비교자를 역으로 만드는 메서드를 작성하면 이 발상을 일반화할 수 있다.

public static Comparator<String> reverse(Comparator<String> comp) {

    return (x, y) -> comp.compare(y, x);

}


이 메서드는 함수에도 작동한다. 즉, 함수를 인수로 받아서 수정된 함수를 반환한다. 대·소문자를 구별하지 않는 내림차순 비교자를 얻으려면 다음과 같이 호출한다.

reverse(String::compareToIgnoreCase)


Note ≣

Comparator 인터페이스에는 이 방법으로 주어진 비교자의 역을 만들어 내는 기본 메서드 reversed가 있다.

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