Lambd表达式的使用
范例:传统的面向对象开发
interface IMessage2{
void print();
}
public class TestDemo {
public static void main(String[] args) {
IMessage2 message2 = new IMessage2() {//匿名内部类
@Override
public void print() {
System.out.println("MyMessage");
}
};
message2.print();
}
}
对于此类操作有了更简化实现,如果采用函数式编程,则代码如下:
范例:函数式编程
@FunctionalInterface//表明函数式编程
interface IMymessage3{
void print();
}
public class Test16 {
public static void main(String[] args) {
IMymessage3 mymessage3 =()-> System.out.println("MyMessage");
mymessage3.print();
}
}
面向对象语法最大的局限:结构必须非常完整。
要想使用函数式编程有一个前提:接口必须只有一个抽象方法,如果有两个抽象方法,则无法使用函数式编程。如果现在某个接口就是为了函数式编程而生的,最好定义时就让其只能够定义一个抽象方法,所以有了一个新注解@FunctionalInterface注解。