使用toLowerCase()toUpperCase()来进行大小写不敏感的比较是低效的,因为它会创建临时的,内部的String对象。

如下代码:

boolean result1 = foo.toUpperCase().equals(bar);             // Non-Compliant
boolean result2 = foo.equals(bar.toUpperCase());             // Non-Compliant
boolean result3 = foo.toLowerCase().equals(bar.LowerCase()); // Non-Compliant

应该重构为:

boolean result = foo.equalsIgnoreCase(bar);                  // Compliant