报告可被替换为对 Integer.compare() 方法或来自 LongShortByteDoubleFloat 类的类似方法(而非更冗长或更低效构造)的调用的表达式。

如果 xy 是已装箱整数,则建议使用 x.compareTo(y);如果它们是基元,则建议使用 Integer.compare(x, y)

示例:


  public int compare(int x, int y) {
    return x > y ? 1 : x < y ? -1 : 0;
  }

在应用快速修复后:


  public int compare(int x, int y) {
    return Integer.compare(x, y);
  }

请注意,Double.compareFloat.compare 会略微更改代码语义。 特别是,它们会使 -0.00.0 可以区分(Double.compare(-0.0, 0.0) 生成 -1)。 此外,它们会一致地处理 NaN 值。 在大多数情况下,这种语义更改实际上会改进代码。 如果您的情况无法接受语义更改,请使用复选框禁用此项对浮点数的检查。

2017.2 最新变化