
28
자바에서 코틀린으로
함수에 전달할 함수로 사용하기 위한 클래스에 이름을 붙이지 않아도 된다. 하지만 익명 클래
스를 사용하는 코드가 더 읽기 쉬운지에 대해서는 논란의 여지가 있다.
int sum = ((Integer) Lists.fold(counts, new Integer(0),
new Function2() {
public Object apply(Object arg1, Object arg2) {
int i1 = ((Integer) arg1).intValue();
int i2 = ((Integer) arg2).intValue();
return new Integer(i1 + i2);
}
})).intValue();
함수형 프로그래밍의 기본 숙어들은 여전히 자바
2
의 결을 거스르는 방식이다.
2004
년으로 시간을 빠르게 돌려보면, 자바
5
가 배포되면서 언어에 큰 변화가 있었다. 자바
5
에는 제네릭스
generics
가 추가됐고, 이로 인해 타입 안전성이 좋아지고 불필요한 준비 코드 (보일
러 플레이트
boiler
plate
)가 줄어들 수 있었다.
public interface Function2<A, B, R> {
R apply(A arg1, B arg2);
}
int sum = Lists.fold(counts, 0,
new Function2<Integer, ...