BiConsumer
BiConsumer (두 인자를 받는 소비자 함수형 인터페이스)
두 개의 입력 인자를 받고 결과를 반환하지 않는 연산을 나타내는 함수형 인터페이스예요. Consumer의 2-arity 특수화에요. 대부분의 다른 함수형 인터페이스와 달리 부수 효과(side-effects)를 통해 동작할 것으로 기대돼요.
본문
BiConsumer<T,U>의 추상 메서드는 accept(T, U)예요. 두 인자를 받아 결과를 반환하지 않아요.
@FunctionalInterface
public interface BiConsumer<T,U>
기본 메서드 andThen(BiConsumer)는 두 BiConsumer를 순서대로 연결해요.
BiConsumer<String, Integer> print = (name, age) ->
System.out.println(name + "은(는) " + age + "살");
BiConsumer<String, Integer> log = (name, age) ->
System.out.println("log: " + name);
print.andThen(log).accept("홍길동", 30);
// 홍길동은(는) 30살
// log: 홍길동
대표적인 사용처로 Map.forEach, Iterable.forEach 등이 있어요.
Map<String, Integer> map = Map.of("a", 1, "b", 2);
map.forEach((k, v) -> System.out.println(k + "=" + v));
함수형 메서드는 accept(Object, Object)예요. 코드와 시그니처는 원문 그대로 보존돼요.