Java基础——Lambda学习

Java8新特性——Lambda表达式。

语法格式

Java中的lambda表达式语法

(parameters) -> expression

(parameters) ->{ statements; }

实质

Java中lambda表达式使用类型推断(type inference)技术

定义接口

public interface IFlower {
    String getColor(String flowerName);
}

编写Lambda表达式

IFlower flower = (String name) -> {if(name == "rose") return "red"; else return "unkonwn";};
System.out.println(flower.getColor("rose"));   //打印:red

编译器知道IFlower接口只有一个方法getColor(),所以getColor()方法肯定对应(String name) -> {if(name == "rose") return "red"; else return "unkonwn";},而且getColor()方法只有一个String类型的参数,所以(String name) -> {if(name == "rose") return "red"; else return "unkonwn";}中的String name就是这个参数了。

因此,接口要求必须是函数式接口,如果其中有两个方法则lambda表达式会编译错误。

参考资料

http://www.runoob.com/java/java8-lambda-expressions.html http://www.cnblogs.com/feichexia/archive/2012/11/15/Java8_LambdaExpression.html

Last updated