Plus10 p10 = new Plus();
System.out.println(p10.apply(10);
Function<T, R> - 인자 T 자료형, 반환값 R 자료형
여기서는 Integer로 설정후 진행
Function<Integer, Integer> p10 = (i) -> 10+i;
p10.apply(10);
UnaryOperator<Integer> minus10 = (i) -> i - 10;
minus10.apply(20);
BiFunction<String, Character, Boolean> ohterSame = (s, c) -> {
if (s.startsWith(c.toString()))
return true;
else
return false;
};
BinaryOperator<Integer> isSame = (num1, num2) -> {
if (num1 == num2)
return num1 + num2;
else if (num1 > num2)
return num1 * num2;
else
return 0;
};
Consumer<Integer> printI = (i) -> System.out.println(i);
printI.accept(10);
Supplier<Integer> get10 = () -> 10;
get10.get();
Predicate<String> startWithWoon = (s) -> s.startsWith("woon");
Predicate<Integer> isEven = (i) -> i % 2 == 0;
B인터페이스 연산 진행 후, A인터페이스 진행
UnaryOperator<Integer> plusAndMulti = multiply.compose(p10);
plusAndMulti.apply(10) // 2 * (10 + 10)
A인터페이스 연산 후, B 인터페이스 진행
Function<Integer, Integer> multiAndPlus = p10.andThen(multiply);
plusAndMulti.apply(10); // 10 + (2 * 10)