我有两个java用户定义的java对象,如何让这两个对象返回相同的引用,用case ignore
示例代码:
public class compare{
private String name;
private Integer number;
}
答案 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;
}