- JDK1.8开始将匿名内部类的实现转为了函数式实现,引入了lambda表达式。
函数式编程的最严格要求:每一个接口里面只允许有一个抽象方法。
为了保证所定义的接口一定是函数式编程所使用的接口,那么一般在定义函数式接口前需要加上一个“@FunctionInterface”注解。 函数式编程的基本组成: (参数) -> 程序的语句;
单行语句:(参数) -> 程序的语句;
多行语句:(参数) -> {程序的语句 … return};
简单返回:(参数) -> 表达式 ;实例分析
单行语句:
(参数) -> 程序的语句;
运行结果: 输出 数据A
@FunctionInterface
interface IDemo<T>{
public void print(T t);
}
public class Test{
public static void main(String[] args) {
IDemo<String> demo = (str) -> System.out.println(str);
demo.print("数据A");
}
}
多行语句:
(参数) -> {程序的语句 … return};
运行结果:输出false;
@FunctionInterface
interface IDemo<T,r>{
public r print(T t1,T t2);
}
public class Test{
public static void main(String[] args) {
IDemo<String,Boolean> demo = (str1,str2) ->{
return str1.equals(str2);
};
System.out.println(demo.print("输出","输入"));
}
}
简单返回:
(参数) -> 表达式 ;
运行结果: 输出true
@FunctionInterface
interface IDemo<T>{
public boolean print(T t1,T t2);
}
public class Test{
public static void main(String[] args) {
IDemo<Integer> demo = (str1,str2) -> str1==str2;
System.out.println(demo.print(100,100));
}
}