我有下面的代碼,它重寫equals()和hashcode()方法。getters可以在equals和hashcode中使用嗎?
public boolean equals(Object obj)
{
if (obj == null)
return false;
if (!(obj instanceof Name))
return false;
Name name = (Name) obj;
return this.name.equals(name.name);
}
public int hashCode()
{
return name.hashCode();
}
這裏我可以替換下面2行:
return this.name.equals(name.name);
return name.hashCode();
與
return this.getName().equals(name.getName());
return getName().hashCode();
我的意思,而不是使用特性可以直接我使用的吸氣劑的內部等於和哈希碼的方法呢?
謝謝!
爲什麼不?:) – 2012-04-09 10:53:59
是的,沒有任何問題。 – MJM 2012-04-09 10:59:41
是的。當對象位於集合中時,您不能使用可以修改的setter或字段。 – 2012-04-09 11:02:04