现在我有这个Java代码
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
public class Dummy {
private String value;
public Dummy(final String value) {
this.value = value;
}
public boolean equals(final Object that) {
return that instanceof Dummy && Objects.equals(value, ((Dummy) that).value);
}
public int hashcode() {
return Objects.hash(value);
}
public static void main(final String... args) {
final Set<Dummy> dummies = new HashSet<>();
dummies.add(new Dummy("toto"));
System.out.println(dummies.contains(new Dummy("toto")));
}
}
Run Code Online (Sandbox Code Playgroud)
输出是"假的",我应该通过只更改一个字符将其更改为"true",但我完全不知道如何做到这一点......任何想法?谢谢.:)
hashcode()不是Object的方法,但hashCode()是.
public int hashcode() {
return Objects.hash(value);
}
Run Code Online (Sandbox Code Playgroud)
应该
public int hashCode() {
return Objects.hash(value);
}
Run Code Online (Sandbox Code Playgroud)