欢迎访问宙启技术站
智能推送

如何创建和调用Java中的匿名函数

发布时间:2023-06-25 21:19:30

在Java中,匿名函数也称为Lambda表达式。Lambda表达式是一种轻量级、简洁的语法,可以用于替代具有单个抽象方法的接口类型的实例化。它可以实现接口中的某个方法,这样就可以使用Lambda表达式替代实现该接口的具体类。

创建Lambda表达式

创建Lambda表达式的语法如下:

(parameters) -> expression/ block of statements

其中,parameters为方法的参数,可以是0个或多个。expression或block of statements为方法体,采用箭头(->)将方法参数列表和方法体隔开。

Lambda表达式可以是一个简单的表达式,也可以是一个代码块。当Lambda表达式只有一个简单表达式时,可以省略花括号和return语句。例如:

// Lambda表达式写法

(x, y) -> x + y

// 等价的匿名内部类写法

new Calculate() {

    public int sum(int x, int y) {

        return x + y;

    }

}

当Lambda表达式需要多个语句时,需要使用代码块的形式。例如:

(x, y) -> {

    int temp = x + y;

    x = y;

    y = temp;

    System.out.println("x=" + x + ", y=" + y);

    return temp; 

}

调用Lambda表达式

Lambda表达式可以直接当做函数式接口的实例来使用。函数式接口是只有一个抽象方法的接口,用于Lambda表达式的赋值和类型转换。例如:

interface MyFunInterface{

    public int sum(int x, int y);

}

// Lambda表达式的调用

MyFunInterface sum = (x, y) -> x + y;

System.out.println(sum.sum(2, 3));

运行结果为 "5"。

Lambda表达式可以解决Java中的一个重要问题——多重线程处理,这是一种难以理解和编写的代码。Lambda表达式可帮助简化代码,并提高代码的可读性和可维护性。

需要注意的是,Lambda表达式在Java 8以上版本才支持。Lambda表达式和匿名函数的执行效率相当,但Lambda表达式的代码行更加简洁、清晰易读。