/**
* 函数式接口的使用
*/
public class Function {
/**
* 声明函数式接口
*/
@FunctionalInterface
interface Max {
Object exec(Object... arr);
}
@FunctionalInterface
interface Min {
Object exec(Object... arr);
}
@FunctionalInterface
interface Avg {
Object exec(Object... arr);
}
/**
* 运行函数式接口
*
* @param func
* @param arr
* @return
*/
Object exec(Function.Avg func, Object... arr) {
return func.exec(arr);
}
Object exec(Function.Max func, Object... arr) {
return func.exec(arr);
}
Object exec(Function.Min func, Object... arr) {
return func.exec(arr);
}
public static void main(String[] args) {
//定义方法
Function.Avg avg = (arr) -> {
double sum = 0;
for (Object line : arr) {
sum += Integer.parseInt(line.toString());
}
return sum / arr.length;
};
//创建对象,用于调用执行方法
Function function = new Function();
//传入定义的方法并执行
Object exec = function.exec(avg, 1, 3);
//打印结果
System.out.println(exec);
}
}
java 1.8 函数式编程
最新推荐文章于 2021-05-31 22:30:19 发布