java 使用逻辑运算符代替 if-else if 进行返回

标签 java conditional-statements return logical-operators

我在 equals 方法中有以下代码。

public boolean equals(Object o){
    if (o == null) return false;
    if (o == this) return true;
    if (!(o instanceof Vertex)) return false;
    return ((Vertex) o).label().equals(label);
}

我的 IDE 突出显示 if 语句并希望我基本上执行此操作

public boolean equals(Object o){
    return (o != null) && ((o==this) || ((o instanceof Vertex) && ((Vertex) o).label().equals(label);
}

有人告诉我,编译器通常足够智能,可以进行优化,并且通常应该编写代码以提高可读性。因此,显然第二个代码示例不像第一个代码示例那么容易阅读。我的 IDE 是否只是令人烦恼,还是这样做有一些实际的性能优点?

最佳答案

首先,仅在您知道这是瓶颈时才进行优化,否则代码的可读性。

您可以检查字节码来查看,但我怀疑它们即使不完全相同,也非常接近。即使字节码存在细微差异,我也看到 JIT 编译器将内容优化到没有差异的程度。您始终可以进行性能测试来确定。

关于java 使用逻辑运算符代替 if-else if 进行返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6637130/

相关文章:

具有混合条件的 bash while 循环

c - (x <= y <=z) ISO C 中的条件语法?

c - c 中 4x4 矩阵的 getter 问题

Javascript 对变量数组进行排序并返回一个变量

java - Viewscoped bean 状态在 Mojarra 和 MyFaces 中以不同方式保存

java - 如何使用 JFilechooser 将图片添加到 JButton

javascript - 有条件后如何返回?

c++ - 是否有 C++ 标准类将变量设置为范围退出时的值

java - JDBC海量数据供选择

java - 使用 Jakarta Digester 还是 JAXB?