java hashcode和equals

java hashcode和equals,java,hashcode,Java,Hashcode,为下面的类创建hashCode和equals方法 private static class MyOb { private String name; private Integer quality; private final int MAXIMUM = 23; } 我无法解决这个问题Java类有默认的hashCode和通过超类实现的equals方法。如果你想超越它们,你可以通过以下方式: class MyOb { private String name; priv

为下面的类创建hashCode和equals方法

private static class MyOb {

    private String name;
    private Integer quality;
    private final int MAXIMUM = 23;

}

我无法解决这个问题

Java类有默认的hashCode和通过超类实现的equals方法。如果你想超越它们,你可以通过以下方式:

class MyOb {

private String name;
private Integer quality;
private final int MAXIMUM = 23;

@Override
public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + ((name == null) ? 0 : name.hashCode());
    result = prime * result + ((quality == null) ? 0 : quality.hashCode());
    return result;
}
@Override
public boolean equals(Object obj) {
    if (this == obj)
        return true;
    if (obj == null)
        return false;
    if (getClass() != obj.getClass())
        return false;
    MyOb other = (MyOb) obj;
    if (name == null) {
        if (other.name != null)
            return false;
    } else if (!name.equals(other.name))
        return false;
    if (quality == null) {
        if (other.quality != null)
            return false;
    } else if (!quality.equals(other.quality))
        return false;
    return true;
}
}


注意:类不能是私有的或静态的

如果您想查看类的哈希代码。 创建对象

    Myob myObject=new Myob();
    System.out.println(myObject);
如果要使用equals方法

    myObject.equals(which one you want to campare);

你想把作业做完吗?。首先做一些努力提示:看看任何java类的源代码,例如Objects实际上我在面试中被问到,我不能回答它是一个
嵌套的
类吗?你得到这份工作了吗?你为什么使用MAXIMUM?这只是一个恒久不变的问题,谢谢你的记忆也许值得指出我猜你使用的eclipse生成hashcode/equals。是的,使用eclipse IDE生成代码,但我的目的是让他知道这些是默认方法,可以重写Hanks,我真的很感激