报告对 String.startsWith()String.endsWith() 的调用,其中单字符字符串文字会作为参数传递。

建议使用快速修复,用更高效实现的 String.charAt() 替换此类调用。

然而,由于额外的非零长度检查,这种更改的性能增益很小并且会降低代码的可读性,因此建议仅在紧密循环内应用快速修复。

此检查适用于 Java ME 和其他资源高度受限的环境。 不加考虑地应用此检查的结果可能会对代码清晰度和设计产生负面影响。

示例:


  boolean startsWithX(String s) {
    return s.startsWith("x");
  }

在应用快速修复后:


  boolean startsWithX(String s) {
    return !s.isEmpty() && s.charAt(0) == 'x';
  }