Contents
함수형 인터페이스람다식(lambda expression)은 나중에 실행될 목적으로 다른 곳에 전달될 수 있는 코드 블록입니다. 람다식을 이용하면 함수가 필요한 곳에 간단히 함수를 보낼 수 있습니다.
람다식 예
// 이전의 방법 new Thread(new Runnable() { @Override public void run() { System.out.println("스레드 실행"); } }).start();
// 람다식을 이용한 방법 new Thread( () -> System.out.println( "스레드 실행") ).start();
위와 같이 람다식을 이용하면 코드를 간단하게 작성 가능하다.
람다식 vs 메소드 참조
익명 클래스를 람다식으로 변경하면 10줄 → 1줄로 소스의 크기를 줄일 수 있습니다. 하지만 메소드 참조로 변경한다고 해도 소스의 크기는 거의 줄어들지 않습니다. 다만 스트림 API를 사용할 때는 람다식보다 메소드 참조가 더 편리합니다.
함수형 인터페이스
Java에서 함수를 표현하기 위한 개념으로, 람다 표현식과 함께 주로 사용됩니다.
Predicate 인터페이스
단일 값을 매개 변수로 사용하고 true또는 false를 반환하는 함수
Predicate predicate = (v) -> v != null;
return이 boolean으로 있고, 변수 1개
Supplier 인터페이스
일종의 값을 제공하는 함수를 나타내는 함수형 인터페이스
Supplier<Integer> supplier = () -> new Integer((int) (Math.random() * 100));
return이 있고 0개의 매개 변수
Consumer 인터페이스
값을 반환하지 않고 값을 소비하는 함수를 나타내는 함수형 인터페이스
Consumer<Integer> consumer = (value) -> System.out.println(value);
return이 없고 1개의 매개 변수
BiFunction 인터페이스
두 개의 인수를 취하고 하나의 객체를 반환하는 함수형 인터페이스
BiFunction<Integer, Integer, Integer> func = (x1, x2) -> x1 + x2;
Integer result = func.apply(1, 2);
return이 있고 2개의 매개 변수
Share article