首页 > Java > java教程 > 正文

Java 中的 Lambda 表达式是否相等?

Susan Sarandon
发布: 2024-10-29 19:21:30
原创
310 人浏览过

Can Lambdas Be Compared for Equality in Java?

比较 Lambda:实现和解释

问题:

给定一个对象列表使用 lambda 表达式定义,是否可以检查和比较它们是否相等?

实现注意事项:

从实现角度来看,非捕获 lambda 的计算结果相同捕获站点生成相同的实例,可以使用引用相等性进行比较。然而,在不同站点捕获的不同 lambda 表达式可能会映射到不同的合成类。

规范含义:

语言规范仅保证计算 lambda 表达式的结果是目标功能接口的实例。它不指定结果的身份或别名。这种灵活性允许实现通过不为每个 lambda 求值创建唯一实例来优化性能。

方法引用相等性:

方法引用可以提供调整定义的实际场景支持作为听众使用的平等。未来的修订正在考虑这一点。

深入评估:

确定两个 lambda 的相等性需要比较它们的行为函数、捕获的参数以及它们的功能接口被转换为.然而,获取不可序列化 lambda 的此信息可能具有挑战性。

设计决策:

Java 专家组得出的结论是,公开 lambda 相等性比较的信息是不值得的大多数用户的性能损失。然而,改进 toString() 表示的可行性仍有待未来讨论。

以上是Java 中的 Lambda 表达式是否相等?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板