BiConsumer

BiConsumer (두 인자를 받는 소비자 함수형 인터페이스)

두 개의 입력 인자를 받고 결과를 반환하지 않는 연산을 나타내는 함수형 인터페이스예요. Consumer의 2-arity 특수화에요. 대부분의 다른 함수형 인터페이스와 달리 부수 효과(side-effects)를 통해 동작할 것으로 기대돼요.

출처: Java API Reference

본문

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)예요. 코드와 시그니처는 원문 그대로 보존돼요.

더 알아보기