본문 바로가기
정리/Java

Java - 자바에서 제공하는 함수형 인터페이스

by 난파선 2017. 2. 26.


자주 사용되는 함수형 인터페이스를 제공
인터페이스 메서드 설명
java.lang.Runnable void run()
리턴 값과 매개변수 둘다 없다.
Supplier<T>
T get()
리턴 값만 있다.
Consumer<T>
void accept(T t)
매개변수만 있다.
Function<T,R>
R apply(T t)
하나의 매개변수와 하나의 리턴 값을 가진다.
Predicate<T>
boolean test(T t) 하나의 매개변수를 가지고 booean값을 리턴한다.
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.function.Supplier;

public class FunctionInterface2 {
    public static void main(String[] args) {
        Runnable r = () -> System.out.println("test");
        Supplier<String> s = () -> "test2";
        Consumer<String> c = a -> System.out.println(a);
        Function<String, Integer> f = a -> a.length();
        Predicate<String> p = a -> a.equals("test5");
            
        r.run();
        System.out.println(s.get());
        c.accept("test3");
        System.out.println(f.apply("test4"));
        System.out.println(p.test("test5"));
    }
}
/*
test
test2
test3
5
true
*/

매개변수가 2개인 함수형 인터페이스

인터페이스
메서드
void accept(T t, R r)
BiFunction<T,R,U>
U apply(T t, R r)
boolean test(T t, R r)
BiConsumer<String, Integer> bc = (a, b) -> System.out.println("a = " + a + " b = " + b);
bc.accept("test6", 20);
//a = test6 b = 20

매개변수 타입과 리턴타입이 일치하는 함수형 인터페이스

인터페이스 메서드
설명
T apply(T t)
Function의 자식
T apply(T t, T r) BiFunction의 자식
UnaryOperator<String> uo = (a) -> a + "world";
System.out.println(uo.apply("hello "));
//hello world


댓글