java8的lambda表达式

Posted 哈哈哈天蝎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java8的lambda表达式相关的知识,希望对你有一定的参考价值。

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表达式的主要内容,如果未能解决你的问题,请参考以下文章

Java8中的Lambda表达式

Java8中Lambda表达式详解

java8 lambda的使用

java8 lambda表达式

Java8新特性之一:Lambda表达式

Java8-01-笔记