在前面简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义好了4类内置函数式接口,这4类接口其实已经可以解决我们开发过程中绝大部分的问题,只有一小部分比较特殊得情况需要我们自己去定义函数式接口,本文就简单来学习一下java8内置得4大核心函数式接口。
在前面简单介绍了一些Lambda表达式得好处与语法,我们知道使用Lambda表达式是需要使用函数式接口得,那么,岂不是在我们开发过程中需要定义许多函数式接口,其实不然,java8其实已经为我们定义好了4类内置函数式接口,这4类接口其实已经可以解决我们开发过程中绝大部分的问题,只有一小部分比较特殊得情况需要我们自己去定义函数式接口,本文就简单来学习一下java8内置得4大核心函数式接口。
一、Function<T, R>:函数型接口(R apply(T t))
/**
* 字符串操作
* @param str 需要处理得字符串
* @param fun Function接口
* @return 处理之后得字符串
*/
public String operatorStr(String str,Function<String,String> fun){
return fun.apply(str);
}
/**
* 函数型接口:Function<T,R>
*/
@Test
public void test5(){
String s=operatorStr("中国四大名著",str->str.substring(0,2));
System.out.println(s);
}
上面就是一个函数型接口,输入一个类型得参数,输出一个类型得参数,当然两种类型可以一致。