gpt4 book ai didi

java - 等于重写 String 和 Int

转载 作者:行者123 更新时间:2023-11-29 09:39:52 24 4
gpt4 key购买 nike

我在该列表中有一个列表我创建了一个对象。通过使用 contains() 方法,我想检查对象是否已经存在。为此,我覆盖了 equals() 方法。到目前为止一切都很完美。但是当我尝试对 Stringint 做同样的事情时,equals() 覆盖不起作用。为什么会这样?我刚刚发布了一些示例代码以供引用。

public class Test 
{
private int x;

public Test(int n)
{
x = n;
}

public boolean equals(Object o)
{
return false;
}

public static void main(String[] args)
{
List<Test> list = new ArrayList<Test>();
list.add(new Test(3));
System.out.println("Test Contains Object : " + list.contains(new Test(3))); // Prints always false (Equals override)
List<String> list1 = new ArrayList<String>();
list1.add("Testing");
String a = "Testing";
System.out.println("List1 Contains String : " + list1.contains(a)); // Prints true (Equals override not working)
}
}

最佳答案

String 和 Integer 都是 final 类,所以你不能继承它们。因此,您不能覆盖它们的 equals 方法。

但是,您可以子类化 ArrayList 并在现有的基础上创建您自己的包含实现构建。

关于java - 等于重写 String 和 Int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9037911/

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