1
我只是產生一些equals方法,想知道是否這將是最好用Objects.equals()方法與Java比較領域7.使用Java 7的Objects.equals比較字段?
Eclipse的生成等於這樣的:
public class A
{
private String a;
private String b;
@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(a == null)
{
if(other.a != null)
return false;
}
else if(!a.equals(other.a))
return false;
if(b == null)
{
if(other.b != null)
return false;
}
else if(!b.equals(other.b))
return false;
return true;
}
}
我想知道,如果這將是良好的做法:
public class A
{
private String a;
private String b;
@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;
return Objects.equals(a, other.a) && Objects.equals(b, other.b);
}
}
你怎麼看?我試圖測試它的性能,但它沒有顯示出差異。
謝謝,更改了版本! – Mathis
還要注意'Objects.hashcode(T ... obj)''是一個很好的補充。 – Kayaman
是的,並且在重寫equals時應該始終實現'hashCode'。 –