我有一个地址对象,我想为其创建一个equals方法.我可以通过做类似下面的事情(缩短一点)使这变得非常简单:
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
Address other = (Address) obj;
return this.getStreet().equals(other.getStreet())
&& this.getStreetNumber().equals(other.getStreetNumber())
&& this.getStreetLetter().equals(other.getStreetLetter())
&& this.getTown().equals(other.getTown());
}
Run Code Online (Sandbox Code Playgroud)
问题是,其中一些可能是空的.换句话说,NullPointerException
如果此地址中没有街道信件,我会得到一个.
如何在考虑空值的情况下以干净的方式编写此文件?
我只是想知道,编译器使用什么实际上更有效?
if (condition) {
return something;
} else {
dosomething();
}
Run Code Online (Sandbox Code Playgroud)
要么
if (condition) {
return something;
}
dosomething();
Run Code Online (Sandbox Code Playgroud)
我知道这些是非常低的差异,应该选择更易读的版本,但是我们只能说我们将执行这个代码十亿次,哪一个会更有效?
我也知道在"现实世界"中根本没有任何收获,但我只是好奇.