Lambda匿名函数

// Lambda只能简化接口中只有一个抽象方法的匿名内部类形式


public class Test2 {
    public static void main(String[] args) {
        Swin s = new Swin() {
            @Override
            public void swin() {
                System.out.println("游泳");
            }
        };
        Swin s1 = ()->System.out.println("游泳");
        //三者效果一致
        go(s);
        go(s1);
        go(()->System.out.println("游泳"));

    }
    public static void go(Swin s){
        System.out.print("快");
        s.swin();
    }
}
判断内置方法是否可以简化,查看该方法是否有注释(@FunctionalInterface)即可
public class SortDemo {
    public static void main(String[] args) {
        Integer[] s = {3,45,6,7,81,1,2};
//        Arrays.sort(s, new Comparator<Integer>() {
//            @Override
//            public int compare(Integer o1, Integer o2) {
//                return o2-o1;
//            }
//        });
        Arrays.sort(s, (Integer o1, Integer o2)->{return o2-o1;});
        Arrays.sort(s, (o1, o2)->{return o2-o1;}); # 参数类型可以不写
        Arrays.sort(s, (o1, o2)->o2-o1);  //方法只有return,可以不写return
        //Arrays.sort(s, o1->o2-o1);  //只有一个参数,可不写小括号

        System.out.println(Arrays.toString(s));

    }

}


版权声明:本文为qq_34577961原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。