范例:傳統(tǒng)的面向?qū)ο箝_發(fā)
interface IMessage2{
void print();
}
public class TestDemo {
public static void main(String[] args) {
IMessage2 message2 = new IMessage2() {//匿名內(nèi)部類
@Override
public void print() {
System.out.println("MyMessage");
}
};
message2.print();
}
}
對于此類操作有了更簡化實(shí)現(xiàn),如果采用函數(shù)式編程,則代碼如下:
范例:函數(shù)式編程
@FunctionalInterface//表明函數(shù)式編程
interface IMymessage3{
void print();
}
public class Test16 {
public static void main(String[] args) {
IMymessage3 mymessage3 =()-> System.out.println("MyMessage");
mymessage3.print();
}
}
面向?qū)ο笳Z法最大的局限:結(jié)構(gòu)必須非常完整。
要想使用函數(shù)式編程有一個前提:接口必須只有一個抽象方法,如果有兩個抽象方法,則無法使用函數(shù)式編程。如果現(xiàn)在某個接口就是為了函數(shù)式編程而生的,最好定義時就讓其只能夠定義一個抽象方法,所以有了一個新注解@FunctionalInterface注解。