Intellij Idea 简明教程
Intellij Idea - Code Refactoring
在本章中,我们将介绍代码重构以及它在 IntelliJ 中的工作原理。代码重构是对代码进行重组,而无需更改其功能和可用性。可以对代码进行重构以提高代码可读性、性能或移除未使用/重复的功能。IntelliJ 为代码重构提供了强大的支持。本章讨论了各种代码重构操作。
Rename
重命名操作可用于重命名方法、其参数、类属性、局部变量等。我们来在 IntelliJ 中创建以下类。
public class Employee {
private String name;
private String address;
private int age;
public Employee() {
this("Jarvis", "Palo Alto", 35);
}
public Employee(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", address='" + address + '\'' +
", age=" + age +
'}';
}
public static void main(String args[]) {
Employee e = new Employee();
System.out.println(e);
}
}
现在,让我们将 Employee 类重命名为 Person 。此操作将在构造函数和 main() 方法中进行修改 -
-
Select Employee word
-
转到 Refactor → Rename 并将其重命名为 Person。
Replace Code Duplicates
这是强大的重构操作之一。IntelliJ 识别代码重复并用适当的代码替换它。让我们引入代码重复并对其进行重构。在编辑器中键入以下代码 -
public class Employee {
private String name;
private String address;
private int age;
public Employee() {
this("Jarvis", "Palo Alto", 35);
}
public Employee(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public void setData(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public void showEmployeeDetail() {
System.out.println("Name = " + name + ", Address = " + address + ", Age = " + age);
}
public static void main(String args[]) {
Employee e = new Employee();
e.showEmployeeDetail();
}
}
在此示例中,Employee(String name, String address, int age) 构造函数和 public void setData(String name, String address, int age) 方法完全相同。重构后,Employee(String name, String address, int age) 构造函数会修改为以下内容 -
public Employee(String name, String address, int age) {
setData(name, address, age);
}
替换重复部分 -
-
转到重构 → 查找并替换代码重复。
-
选择重构范围并按照屏幕上的步骤完成操作。
Copy Refactoring
在本节中,我们将了解如何将一个类复制到另一个类。让我们将 Employee 类复制到 Person 类。我们可以将其复制到现有模块或新建模块。IntelliJ 将根据它进行必要的更改。按照以下步骤执行复制重构 -
-
转到 Refactor → Copy ,它将打开对话框。
-
输入新名称和目标包。
-
单击“确定”按钮,即可完成所需操作。
Move Refactoring
移动重构类似于复制,但它不是制作另一个副本,而是将代码移动到另一个包或使其成为另一个类的内部类。
按照以下步骤执行移动重构 -
-
转到重构 → 移动。
-
将出现一个新窗口。
-
根据您的选择选择其中一个选项,然后单击“重构”。
Safe Delete
仅当对象在项目中任何地方都没有被引用时,安全删除操作才会删除该对象。此选项的目标可以是类、接口、方法、字段或参数。
让我们看看实际操作。在编辑器中输入以下代码 −
public class HelloWorld {
static void sayHello() {
System.out.println("Hello, World !!!");
}
public static void main(String[] args) {
sayHello();
}
}
按照以下步骤执行安全删除操作 −
-
Select the sayHello() method.
-
右键单击它并选择 Refactor → Safe Delete 选项。
-
由于正在使用 sayHello() 方法,它将显示错误,如下面的屏幕截图所示 −