一个例子就学会Lambda表达式

Lambda表达式

都2020年了,Java程序员还不会lambda表达式?(赶快学起来)

lambda表达式是JDK8的新特性,可以取代大部分的匿名内部类,写出更优雅的代码。

lambda基础语法

/**
 * @author sean yang
 */
@FunctionalInterface
public interface NoReturnMultiParam {
    
    
    /**
     * 多参数无返回值
     * @param a
     * @param b
     */
    void method(int a, int b);
}
@FunctionalInterface
public interface NoReturnNoParam {
    
    
    /**
     * 无参无返回值
     */
    void method();
}
@FunctionalInterface
public interface NoReturnOneParam {
    
    
    /**
     * 一参无返回
     * @param a
     */
    void method(int a);
}
@FunctionalInterface
public interface ReturnMultiParam {
    
    
    /**
     * 多参数有返回
     * @param a
     * @param b
     * @return
     */
    int method(int a,int b);
}
@FunctionalInterface
public interface ReturnNoParam {
    
    
    /**
     * 无参数有返回
     * @return
     */
    int method();
}

@FunctionalInterface
public interface ReturnOneParam {
    
    
    /**
     * 一参数有返回
     * @param a
     * @return
     */
    int method(int a);
}

用lambda表达式来测试上面的六个接口

public class LambdaMain {
    
    
    public static void main(String[] args) {
    
    
        //无参无返回
        NoReturnNoParam noReturnNoParam = () -> {
    
    
            System.out.println("无参无返回");
        };
        noReturnNoParam.method();

        //一参数无返回
        NoReturnOneParam noReturnOneParam = (int a ) -> {
    
    
            System.out.println("一参数无返回"+a);
        };
        noReturnOneParam.method(110);

        //多参无返回
        NoReturnMultiParam noReturnMultiParam = (int a,int b) -> {
    
    
            System.out.println("多参数无返回"+ (a+b));
        };
        noReturnMultiParam.method(2,3);

        //无参有返回
        ReturnNoParam returnNoParam = () -> {
    
    
            System.out.println("无参有返回");
            return 1;
        };
        int res = returnNoParam.method();
        System.out.println("res = " +res);

        //一参有返回
        ReturnOneParam returnOneParam = (int a) ->{
    
    
            System.out.println("一参有返回");
            return a;
        };
        int res1 = returnOneParam.method(3);
        System.out.println("res1 = " +res1);
        //多参有返回
        ReturnMultiParam returnMultiParam = (int a,int b) ->{
    
    
            System.out.println("多参有返回");
            return a + b;
        };
        int res2 = returnMultiParam.method(2,3);
        System.out.println("res2 = " +res2);
    }
}

输出结果为:

无参无返回
一参数无返回110
多参数无返回5
无参有返回
res = 1
一参有返回
res1 = 3
多参有返回
res2 = 5

猜你喜欢

转载自blog.csdn.net/qq_31702655/article/details/106982921