Java: if-return-if-return vs if-return-elseif-return
2022-09-01 10:48:30
问了一个不相关的问题,我有这样的代码:
public boolean equals(Object obj)
{
if (this == obj)
return true;
if (obj == null)
return false;
if (getClass() != obj.getClass())
return false;
// Check property values
}
我得到了一条评论,声称这不是最佳的,相反,它(如果我理解正确)应该这样做:
public boolean equals(Object obj)
{
if (this == obj)
return true;
else if (obj == null)
return false;
else if (getClass() != obj.getClass())
return false;
// Check property values
}
由于返回语句,我真的看不出为什么它们中的任何一个应该比另一个更高效或更快。给定某个对象,据我所知,这两种方法都必须执行相同数量的检查。由于返回语句,任何一个语句中都不会运行任何额外的代码。
我在这里错过了什么吗?有什么东西吗?是否有一些编译器优化或正在发生的事情或其他任何事情?
我知道这是微优化,我很可能会坚持第一种方式,因为我认为在同一位置上的所有if看起来更干净。但我忍不住;我很好奇!