个人对lambda表达式的理解

对lambda表达式的理解

/*
lambda表达式的运用
    1.适用于单方法接口Comparator,Runnable,Callable等,单方法接口可以用注解@FunctionalInterface标记
    2.使用lambda不会产生新的类
    3.Lambda表达式的参数和返回值均可由编译器自动推断
* */
public class Lambda {
   @FunctionalInterface
    interface Sum{
        int getSum(int x,int y);
    }
    @FunctionalInterface
    interface Sout{
        void show(String a);
    }
    public static void main(String[] args) {
        //有声明类型,有大括号和return
        Sum sum1 = (int a,int b)-> {return a+b;};
        System.out.println("两数之和为"+sum1.getSum(9,9));

        //有声明类型,无大括号和return,如果主体包含了一个语句,就不需要使用大括号。
        Sum sum2 = (int a,int b)->a*b;
        System.out.println("两数之积为"+sum2.getSum(9,9));

        //无声明类型。无大括号和return,不需要声明参数类型,编译器可以统一识别参数值。
        Sum sum3 = (a,b)->{return a/b;};
        System.out.println("两数之除为"+sum3.getSum(10,1));

        //无声明类型,无圆括号。无大括号和return,一个参数无需定义圆括号,但多个参数需要定义圆括号。
        System.out.println("两数之输出为");
        Sout s =  a-> System.out.println(a);
        s.show("ddddd");
    }



}

输出结果:
个人对lambda表达式的理解

上一篇:lambda矩阵的等价标准型(Smith标准型)


下一篇:[ Skill ] map mapc mapcan mapcar mapcon maplist mapinto