比较 Lambda:实现和解释
问题:
给定一个对象列表使用 lambda 表达式定义,是否可以检查和比较它们是否相等?
实现注意事项:
从实现角度来看,非捕获 lambda 的计算结果相同捕获站点生成相同的实例,可以使用引用相等性进行比较。然而,在不同站点捕获的不同 lambda 表达式可能会映射到不同的合成类。
规范含义:
语言规范仅保证计算 lambda 表达式的结果是目标功能接口的实例。它不指定结果的身份或别名。这种灵活性允许实现通过不为每个 lambda 求值创建唯一实例来优化性能。
方法引用相等性:
方法引用可以提供调整定义的实际场景支持作为听众使用的平等。未来的修订正在考虑这一点。
深入评估:
确定两个 lambda 的相等性需要比较它们的行为函数、捕获的参数以及它们的功能接口被转换为.然而,获取不可序列化 lambda 的此信息可能具有挑战性。
设计决策:
Java 专家组得出的结论是,公开 lambda 相等性比较的信息是不值得的大多数用户的性能损失。然而,改进 toString() 表示的可行性仍有待未来讨论。
以上是Java 中的 Lambda 表达式是否相等?的详细内容。更多信息请关注PHP中文网其他相关文章!