函数式编程与接口实现的对比
lambda表达式表达的是接口函数,
箭头左侧是函数参数,
箭头右侧是函数体。
函数的参数类型和返回值类型都可以省略,
程序会根据接口定义的上下文自动确定数据类型。
package design.mode.reactivex.function;
public class SimpleFuncMain {
interface Body{
String lowwer(String low);
}
interface Printer{
String print(String num);
}
interface MultiPrinter{
String multiPrint(String left,String right);
}
static MultiPrinter multiPrinter = (x,y)->x+" and "+y;
static Body bod=h->h.toLowerCase();
static Printer printerA = (String p)->"lambada print : "+p;
static Printer printerB = new Printer() {
@Override
public String print(String str) {
return "implement print : "+str;
}
};
public static void main(String[] args) {
System.out.println(bod.lowwer("OH MY JUICE!"));
System.out.println(printerA.print("Printer A"));
System.out.println(printerB.print("Printer B"));
System.out.println(multiPrinter.multiPrint("water","book"));
}
}
输出
oh my juice!
lambada print : Printer A
implement print : Printer B
water and book