java8的lambda表达式

2021-04-10 05:27

阅读:341

标签:lin   nal   ati   lambda   构造   col   div   system   ram   

lambda是javar1.8新加入的一个新特性,主要是为了提高代码的简洁性,减少代码量。其本质就是一个java 的匿名函数, 主要用于对函数式接口的重写。用法有点类似于javascrip的箭头函数。下面是一些用法的例子。

无返回值无参数

@FunctionalInterface
public interface NoneReturnNoneParam {
    void test();
}

例子

public class Lambda {

    public static void main(String[] args) {
        NoneReturnNoneParam lambda = () -> System.out.println("method test is running");
        lambda.test();
    }
}

无返回值单个参数

@FunctionalInterface
public interface NoneReturnSingleParam {
    void test(int a);
}

例子

public class lambda2 {

    public static void main(String[] args) {
        NoneReturnSingleParam lambda = a -> System.out.println("param a value is " + a);
        lambda.test(10);
    }
}

无返回值多个参数

public class lambda4 {

    public static void main(String[] args) {
        NoneReturnMultipleParam lambda = (a, b) -> System.out.println("a = " + a + ", b = " + b);
        lambda.test(10, 20);
    }
}

例子

public class lambda4 {

    public static void main(String[] args) {
        NoneReturnMultipleParam lambda = (a, b) -> System.out.println("a = " + a + ", b = " + b);
        lambda.test(10, 20);
    }
}

有返回值无参数

@FunctionalInterface
public interface SingleNoneParam {
    int test();
}

例子

public class lambda3 {

    public static void main(String[] args) {
        SingleNoneParam lambda = () -> 10;
        int value = lambda.test();
        System.out.println("return value is " + value);
    }
}

有返回值单个参数

@FunctionalInterface
public interface SingleParam {
    int test(int a);
}

例子

public class lambda5 {

    public static void main(String[] args) {
        SingleParam lambda = a -> a;
        int value = lambda.test(10);
        System.out.println("return value is " + value);
    }
}

有返回值多个参数

@FunctionalInterface
public interface MultipleParam {
    int test(int a, int b);
}

例子

public class lambda6 {
    public static void main(String[] args) {
        MultipleParam lambda = (a, b) -> a + b;
    }
}

传一个构造函数

例子

java8的lambda表达式

标签:lin   nal   ati   lambda   构造   col   div   system   ram   

原文地址:https://www.cnblogs.com/li1234567980/p/13369764.html


评论


亲,登录后才可以留言!