자바에서 제공하는 주요 함수형 인터페이스:
- Predicate<T>: T 타입을 받아 boolean을 반환 (test 메소드)
- Consumer<T>: T 타입을 받고 반환값 없음 (accept 메소드)
- Function<T, R>: T 타입을 받아 R 타입을 반환 (apply 메소드)
- Supplier<T>: 매개변수 없이 T 타입 반환 (get 메소드)
java
// Predicate 예제 - 조건 검사
Predicate<String> isLong = s -> s.length() > 10;
System.out.println(isLong.test("Hello World")); // true
// Consumer 예제 - 출력
Consumer<String> printer = s -> System.out.println(s);
printer.accept("Hello Lambda"); // Hello Lambda
// Function 예제 - 변환
Function<String, Integer> toLength = s -> s.length();
System.out.println(toLength.apply("Hello")); // 5
// Supplier 예제 - 생성
Supplier<Double> random = () -> Math.random();
System.out.println(random.get()); // 랜덤 숫자
람다로 주로 구현됨!
(매개변수) -> { 실행문 }