gpt4 book ai didi

java - java中功能接口(interface)实例的相等性

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:54:32 24 4
gpt4 key购买 nike

<分区>

我不确定如何确定功能接口(interface)的相等性/不变性。我想当我在 Java 8 中使用这种语法糖时可能无法确保相等性,如果您有任何提示,请告诉我。

我为我的问题制作了一个简短的代码片段。

public interface Element {
void doSomething(int a);
}

并且我尝试以功能方式添加此接口(interface)的实例

public class FunctionSet {

public void doubleUp(int a) {
System.out.println(a*2);
}

public void square(int a) {
System.out.println(a*a);
}

public static void main(String[] args) {
HashSet<Element> set = new HashSet<>();
FunctionSet functionSet = new FunctionSet();

set.add(functionSet::doubleUp);
set.add(functionSet::square);

System.out.println(set.add(functionSet::doubleUp));
}

}

它打印 true,这意味着没有任何相等性检查,而且一旦我添加它,我就无法从 Set 中删除任何实例。

如果我使用功能接口(interface)作为参数,有什么方法可以比较这些实例吗?

将不胜感激任何帮助,提前致谢!

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com