[백업][가리사니] 자바 스트림 : 1. @functionalinterface 함수 인터페이스
java
이 문서는 가리사니 개발자 포럼에 올렸던 글의 백업 파일입니다. 오래된 문서가 많아 현재 상황과 맞지 않을 수 있습니다.
Runnable
public static void run(Runnable runnable) {
runnable.run();
}
public static void main(String[] args) {
run(() -> System.out.println("안녕하세요."));
}
Supplier
public static <T> void run(Supplier<T> supplier) {
System.out.println(supplier.get());;
}
public static void main(String[] args) {
run(() -> "Supplier 는 인자 없이 반환");
}
Predicate
public static <T> void run(Predicate<T> predicate, T param1) {
System.out.println("입력 ["+param1+"] : " + predicate.test(param1));
}
public static void main(String[] args) {
run((e) -> e > 1, 3);
run((e) -> e.length() == 3, "abc");
}
Consumer
public static <T> void run(Consumer<T> consumer, T param1) {
consumer.accept(param1);
}
public static <T, U> void run(BiConsumer<T, U> biConsumer, T param1, U param2) {
biConsumer.accept(param1, param2);
}
public static void main(String[] args) {
run((e) -> System.out.println("인자 : " + e), "Consumer 예제");
run((e, f) -> {
System.out.println("인자1 : " + e);
System.out.println("인자2 : " + e);
}, "BiConsumer", "예제");
}
Function
public static <T, R> void run(Function<T, R> function, T param1) {
System.out.println("Function 반환 : " + function.apply(param1));
}
public static <T, U, R> void run(BiFunction<T, U, R> biFunction, T param1, U param2) {
System.out.println("BiFunction 반환 : " + biFunction.apply(param1, param2));
}
public static void main(String[] args) {
run((e) -> e + " 예제", "Function");
run((e, f) -> e + f, "BiConsumer", " 예제");
}