toString() 或 substring() 等可被替换为更简单表达式的 String 构造函数和方法的冗余调用。
例如,在 "string".substring(0)、"string".toString() 或
new StringBuilder().toString().substring(1,3) 等代码中,可以安全移除对这些方法的调用。
示例:
System.out.println(new String("message"));
在应用快速修复后:
System.out.println("message");
请注意,该快速修复会移除冗余的构造函数调用,这可能会影响 String 引用相等。
即使被认为是一种不好的做法,如果您仍需要保留,请禁止警告或使用检查设置来忽略冗余的 String 构造函数调用。
使用下方的不报告 String 构造函数调用选项可以不报告如上例所示的代码。
这将避免在使用 new String() 调用保证不同对象相等性的代码中应用快速修复后改变与 == 或 != 进行字符串比较的结果。
使用下方的不报告单实参 substring() 调用选项可以不报告如下所示的代码。
stringBuilder.append(string.substring(5));
可以替换为以下内容。
stringBuilder.append(string, 5, string.length());
2018.1 最新变化