我们知道Java是一种OOP语言,从Java 8开始,我们可以使用Lambda。但我有一些疑问,希望大家能给我一些建议。
- 操作和方法有什么区别?
- Lambda定义了一个 Action ,这似乎违背了OOP。我们过去常常在对象中编写方法来定义其操作。然后我们通过关键字 new 获取该对象的实例。该实例有其字段和方法,因此它成为一个主题、一个角色。但 Lambda 只是破坏了这个结构。 我想知道如何在项目中正确使用Lambda。
最佳答案
Java 是一种 OOP 语言,但在过去的几年里,Java 与许多其他重要语言一样,试图变得更多 FP (例如 C++,以及最近添加的所有 FP 支持)。
函数式编程的一个核心要素:higher order functions 。 “做某事的代码”变成了你可以自己定义并传递的东西。
所以,是的,从严格的 OOP 意义上来说,lambda 和闭包看起来很尴尬。但 Java 在这里只是追随特定的趋势。
而且,现在个人观点:Java 这样做是为了保持相关性。 OOP 概念的“发明”是为了解决一组非常具体的问题,并且许多其他问题可以使用 FP 范式以更好/优雅的方式表达/解决。
关于java - 谈谈java lambda和oop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52758035/