怎么说两个java对象与case忽略相等?

时间:2012-03-13 13:08:54

标签: java

我有两个java用户定义的java对象,如何让这两个对象返回相同的引用,用case ignore

示例代码:

public class compare{

    private String name;
    private Integer number;
}

2 个答案:

答案 0 :(得分:4)

java.lang.String有一个方法:     myString.equalsIgnoreCase( “MyString的”);

如果这不是您想要的,请更具体。

答案 1 :(得分:2)

您必须覆盖hashcode并且等于正确比较两个对象。以下是IDE生成的hashCode和equals方法。

class A
    {
        @Override
        public int hashCode()
        {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + ((number == null) ? 0 : number.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;
        A other = (A) obj;
        if (name == null)
        {
            if (other.name != null)
            return false;
        }
        else if (!name.equalsIgnoreCase(other.name))
            return false;
        if (number == null)
        {
            if (other.number != null)
            return false;
        }
        else if (!number.equals(other.number))
            return false;
        return true;
        }
        String name;
        Integer number;
    }