JDK1.8推出的新特性,函数式编程。
前提接口只有一个方法,可以使用注解@FunctionalInterface来控制
结构: (参数)->单行语句;
(参数)->{多行语句};
如果表达式里面只有 一行返回数据,直接使用,可以不写 return ;
详细参考以下代码:
匿名内部类参考:
package com.wjx.sayHello;
interface IMessage{
public void print();
}
public class TestDemo {
public static void main(String[] args){
IMessage msg=new IMessage(){
public void print(){
System.out.println("hello world!!!");
};
};
msg.print();
}
}
使用Lambda表达式:
单行输出
package com.wjx.sayHello;
@FunctionalInterface
//使用上述注解控制接口是函数式编程的接口,控制只有一个方法
interface IMessage{
public void print();
}
public class TestDemo {
public static void main(String[] args){
//Lambda表达式
IMessage msg=()->System.out.println("hello world");
msg.print();
}
}
多行 输出
package com.wjx.sayHello;
@FunctionalInterface
//使用上述注解控制接口是函数式编程的接口,控制只有一个方法
interface IMessage{
public void print();
}
public class TestDemo {
public static void main(String[] args){
//Lambda表达式
IMessage msg=()->{
System.out.println("hello world");
System.out.println("hello world");
System.out.println("hello world");
};
msg.print();
}
}
直接返回,不需要return
package com.wjx.sayHello;
@FunctionalInterface
//使用上述注解控制接口是函数式编程的接口,控制只有一个方法
interface IMessage{
public int add(int x,int y);
}
public class TestDemo {
public static void main(String[] args){
//Lambda表达式
IMessage msg=(p1,p2)->p1 + p2;
System.out.println(msg.add(10,20));
}
}