📅  最后修改于: 2020-11-16 07:10:05             🧑  作者: Mango
在本章中,我们将学习代码重构及其在IntelliJ中的工作方式。代码重构是在不更改其功能和可用性的情况下重构代码。可以进行代码重构以提高代码的可读性,性能或删除未使用/重复的功能。 IntelliJ为代码重构提供了强大的支持。本章讨论各种代码重构操作。
重命名动作可用于重命名方法,其参数,类属性,局部变量等。让我们在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()方法中进行修改-
选择员工词
转到“重构”→“重命名”,然后用“人”重命名。
这是强大的重构动作之一。 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(字符串名称,字符串地址,整数年龄)构造函数和public void setData(字符串名称,字符串地址,整数年龄)方法完全相同。重构后,Employee(String name,String address,int age)构造函数进行如下修改:
public Employee(String name, String address, int age) {
setData(name, address, age);
}
替换重复项-
转到重构→查找和替换代码重复项。
选择重构范围,然后按照屏幕上的步骤完成操作。
在本节中,我们将了解如何将一个类复制到另一个类。让我们将Employee类复制到Person类。我们可以将其复制到现有模块或新模块中。 IntelliJ将根据它进行所需的更改。请按照以下步骤执行复制重构-
转到重构→复制,它将打开对话框。
输入新名称和目标软件包。
单击确定按钮,它将做有需要的。
移动重构与复制类似,但是它代替制作另一个副本,而是将代码移动到另一个包中,或者将其作为另一个类的内部类。
请按照以下步骤执行移动重构-
转到重构→移动。
将会出现一个新窗口。
根据您的选择选择选项之一,然后单击“重构”。
仅当在项目中的任何地方未引用对象时,“安全删除”操作才会删除对象。此选项的目标可以是类,接口,方法,字段或参数。
让我们来看一下实际情况。在编辑器中键入以下代码-
public class HelloWorld {
static void sayHello() {
System.out.println("Hello, World !!!");
}
public static void main(String[] args) {
sayHello();
}
}
请按照以下步骤执行安全删除操作-
选择sayHello()方法。
右键单击它,然后选择“重构”→“安全删除”选项。
在使用sayHello()方法时,它将显示错误,如以下屏幕截图所示:
该操作会修改方法签名。它可以更改方法名称,其参数,类型,返回值等。让我们从上面的示例中采用一种方法并更改其签名。
请按照以下步骤执行“更改签名”操作-
选择方法。
右键单击它,然后选择“重构”→“更改签名”操作
将出现一个新窗口,您可以在其中执行上述操作。
在窗口底部,显示新签名的预览。
类型迁移会更改符号的类型。该符号可以是方法参数或类属性。在执行所需的操作之前,让我们考虑以下方法-
static void sayHello(String name) {
System.out.println(name);
}
请按照以下步骤执行类型迁移-
选择“字符串”数据类型。
右键单击它,然后选择重构→类型迁移。
在给定的文本框中输入所需的数据类型。
选择范围,然后单击“重构”按钮。