使用Java @Override注释的最佳实践是什么?为什么?
使用@Override注释标记每个重写方法似乎有点过分.是否有某些编程情况需要使用@Override和其他不应该使用的@Override?
我在弄乱试图理解HashSet的行为时遇到了麻烦,但遇到了一个我无法理解的问题。第二个和第三个狗对象具有相同的名称,equals()并且hashcode()已被覆盖以使名称表示相等。尽管如此,hashSet仍然有重复项,我不知道为什么。
我重新阅读了Head First Java的“数据结构”一章,但是它仍然建议我的代码在理论上应该可以工作。
public class DataStructsTests<E> {
HashSet<Dogs> tree = new HashSet<Dogs>();
HashSet<Dogs> treeOwner = new HashSet<Dogs>();
public static void main(String[] args) {
DataStructsTests<String> d = new DataStructsTests<String>();
d.go();
}
public void go() {
Dogs dog = new Dogs("Scout", "a");
tree.add(dog);
treeOwner.add(dog);
Dogs dog2 = new Dogs("Brodie", "b");
tree.add(dog2);
treeOwner.add(dog2);
Dogs dog3 = new Dogs("Brodie", "c");
tree.add(dog3);
treeOwner.add(dog3);
System.out.println(tree);
System.out.println(treeOwner);
System.out.println(dog2.equals(dog3));
System.out.println(dog2.hashCode() + " " + dog3.hashCode());
}
class Dogs {
private String name;
private …Run Code Online (Sandbox Code Playgroud)