public interface BiFuncton<T, U, R> {
R apply(T t, U u);
}
2개의 인자를 받고 1개의 객체를 리턴하는 함수형 인터페이스
import java.util.function.BiFunction;
public class BiFunctionExample {
public static void main(String[] args) {
BiFunction<String, String, String> func1 = (s1, s2) -> {
String s3 = s1 + s2;
return s3;
};
String result = func1.apply("Hello", "World");
System.out.println(result);
BiFunction<Integer, Integer, Double> func2 = (a1, a2) -> Double.valueOf(a1 + a2);
Double sum = func2.apply(10, 100);
System.out.println(sum);
}
}
public enum Operator {
PLUS("+", (num1, num2) -> num1 + num2),
MINUS("-", (num1, num2) -> num1 - num2),
MULTIPLY("*", (num1, num2) -> num1 * num2),
DIVIDE("/", (num1, num2) -> num1 / num2);
private String symbol;
private BiFunction<Integer, Integer, Integer> expression;
Operator(String symbol, BiFunction<Integer, Integer, Integer> expression) {
this.symbol = symbol;
this.expression = expression;
}
public int calculate(int num1, int num2) {
return expression.apply(num1, num2);
}
}
public interface TriFuncton<A, B, C, R> {
R apply(A a, B b, C c);
}
3개의 인자를 받고 1개의 객체를 리턴하는 함수형 인터페이스
import java.util.function.TriFunction;
public class TriFunctionExample {
public static void main(String[] args) {
BiFunction<String, String, String, String> func1 = (s1, s2, s3) -> {
String s4 = s1 + s2 + s3;
return s4;
};
String result = func1.apply("Hello", "World", "!");
System.out.println(result);
}
}