查看don't repeat yourself (DRY) 原则,该原则旨在防止像您这样的情况。与其重命名变量,不如创建单独的方法,该方法将接受任何 Rectangle 并打印其详细信息。
public static void printRectangleDetails(Rectangle r){
System.out.println("Rectangle 1: " + "\n" + "Width: " + r.width + "\n" + "Height: " +
r.height + "\n" + "Color: " + r.color + "\n" + "Area and Perimeter: " +
r.getArea(r.width, r.height) + ", " + r.getPerimeter(r.width, r.height));
}
现在您可以在需要时将它与 r1 和 r2 矩形一起使用
printRectangleDetails(r1);
...
printRectangleDetails(r2);
如果由于某种原因您无法创建单独的方法并使用 DRY 原则,您可以执行以下操作:
假设我们有
String foo = "foo";
System.out.println(foo+" hello wordls"+ foo);
String bar = "bar";
System.out.println(foo+" hello wordls"+ foo);
并且您想将第二个打印语句中的foo 替换为bar。在第二个打印语句上使用 Alt + Shift + R (或从菜单:Refactor -> Rename..)将重命名所有 @987654332 @ 参考 。为了防止它重新声明您的 foo 引用(编译器会给您错误,但不要担心,我们稍后会删除它,它仅在重命名过程中有用)就在您想要将 foo 更改为 @ 的语句之前987654335@点赞
String foo = "foo";
System.out.println(foo+" hello wordls"+ foo);
String bar = "bar";
String foo = "whatever";
// ^^^
System.out.println(foo+" hello wordls"+ foo);
现在在这个新的重复 foo 上使用 Alt + Shift + R 并且 Eclipse 将从这个新参考中查找 foo ,并忽略之前的foos,所以你应该能够看到类似的东西
(如您所见,前两个 foo 未被选中进行重命名)
所以你可以把它改成bar 像
String foo = "foo";
System.out.println(foo+" hello wordls"+ foo);
String bar = "bar";
String bar = "whatever";
System.out.println(bar+" hello wordls"+ bar);
然后删除这个额外的String bar = "whatever";,因为你不再需要它了。
但要小心。这样,您将在重复的 foo 之后重命名所有 foo 变量,而不仅仅是要重命名的 System.out.println(foo+" hello wordls"+ foo); 中的变量。为了确保您没有更改任何您不想更改的内容,请将您想要更改的代码放在方法的末尾(您确定没有 foo 之后不应更改)。完成后,将更改后的代码移动到您想要的位置。