JAVA 中Lambda表达式

来源:互联网 发布:agile java pdf 编辑:程序博客网 时间:2024/06/07 05:29

匿名类

匿名类的出现节省了去创建一个类继承接口的过程
例如原过程如下:

interface IMath{    public int compare(int x,int y); }class Compare implements IMath{    public int compare(int x, int y){  //返回x,y中最大的数        return x>y?x:y;    }}public class Hello{    public static void main(String []args){        IMath m = new Compare();        System.out.println(m.compare(10,20));    }}

使用匿名类之后如下:

interface IMath{    public int compare(int x,int y); }public class Hello{    public static void main(String []args){        IMath m = new IMath() {            public int compare(int x,int y) {                return x>y?x:y;            }        };        System.out.println(m.compare(10,20));    }}

简化了一个类继承接口的代码
当借口中只有一个抽象方法的时候可以使用Lambda 表达式可以更加简化代码
使用Lambda表达式如下

interface IMath{    public int compare(int x,int y); }public class Hello{    public static void main(String []args){        IMath m = (x,y) -> x>y?x:y;        System.out.println(m.compare(10,20));    }}

Lambda表达式的格式:
(抽象方法的参数) -> {
方法体;
};
当方法体只有一行的时候可以省略{ }
当方法体只有一行且为return 的时候可以省略return 这个词

原创粉丝点击