关于Java 中的 Lambda 表达式

网友投稿 279 2022-09-15


关于Java 中的 Lambda 表达式

这篇文章我们将讨论关于java 中的 Lambda 表达式,Lambda 表达式是 Java 涉足函数式编程的过程。它接受参数并将其应用于表达式或代码块。以下是语法的基本示例:

(parameter1, parameter2) => expression

或者

(parameter1, parameter2) => {code block}

Lambda 表达式非常有限,如果它不是 void,则必须立即返回一个值。他们不能使用诸如 if 或 for 之类的关键字来保持简单性。如果需要更多行代码,则可以改用代码块。

现在在实现 lambda 表达式时,不能只使用表达式。Lambda 是函数式接口的实现。函数式接口是只有一个抽象方法的接口。lambda 的好处是它们允许你实现方法而无需实现接口的类和实例化对象。

下面是一个例子:

interface FuncInterface

{

// 抽象函数

void abstractFun(int x);

// 非抽象(或默认)函数

default void normalFun()

{

System.out.println("Hello");

}

}

class Test

{

public statichttp:// void main(String args[])

{

// 实现上述功能接口的 lambda 表达式。

// 该接口默认实现 abstractFun()

FuncInterface fobj = (inhttp://t x)->System.out.println(2*x);

// 这会调用上面的 lambda 表达式并打印 10。

fobj.abstractFun(5);

}

}

Lambda 表达式通常用作函数的参数。为了提高可读性,你还可以将 lambda 表达式存储在变量中,只要该类型是一个只有一个方法、相同数量的参数和相同返回类型的接口。

import java.util.ArrayList;

import java.util.function.Consumer;

public class Main {

public static void main(String[] args) {

ArrayList numbers = new ArrayList();

numbers.add(5);

numbers.add(9);

numbers.add(8);

numbers.add(1);

Consumer method = (n) -> { System.out.println(n); };

numbers.forEach( method );

}

}

lambda 的一个常见用途是创建线程。这是一个使用 lambda 代码块实现 Runnable 对象的示例,供线程执行。

// 可运行的 Lambda

Runnable task2 = () -> { System.out.println("Task #2 is running"); };

// 启动线程

new Thread(task2).start();

作为初学者,我们大多数人都被教导使用 OOP 概念进行编程,因此使用不同的范式(如函数式编程)可能会有些别扭。我自己仍在学习这些概念中。不管怎样我希望这篇文章能让大家学到一些东西。如果你有更多问题或想深入研究该主题,欢迎评论或者查看下方的资料,提取的代码示例也来自如下参考资料

参考资料:

geeksforgeeks.org/lambda-expr…

developer.com/microsoft/s…

codejava.net/java-core/t…


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HostMonitor辅助网络管理——提高服务质量(hostmonitor软件)
下一篇:Linux网络管理员不得不了解的系统目录/proc/sys/net/(linux网络操作系统配置与管理)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~