Tôi có mã bên dưới ghi đè bằng phương thức equals() và hashcode().Getters có thể được sử dụng trong bằng và 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();
}
đây tôi có thể thay thế dưới 2 dòng:
return this.name.equals(name.name);
return name.hashCode();
với
return this.getName().equals(name.getName());
return getName().hashCode();
tôi có nghĩa là thay vì sử dụng các thuộc tính tôi có thể trực tiếp sử dụng thu khí bên trong bằng và phương pháp hashcode?
Cảm ơn!
và tại sao không?:) –
có, Không có vấn đề gì. – MJM
có. Bạn chỉ có thể không sử dụng setters hoặc các lĩnh vực có thể được sửa đổi khi đối tượng là trong một bộ sưu tập. –