在本章中,我们将了解代码重构及其在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); } }
现在,让我们将员工类重命名为人.此操作将在构造函数和 main()方法中进行修改 :
选择员工单词
转到 Refactor → 重命名并用Person重命名.
这是强大的重构操作之一. 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); }
替换重复项 :
转到Refactor → 查找和替换代码重复项.
选择重构范围并按照屏幕上的步骤完成操作.
在本节中,我们将了解如何将一个类复制到另一个类.让我们将Employee
类复制到Person类.我们可以将其复制到现有模块或新模块. IntelliJ将根据需要进行
所需的更改.按照以下步骤执行复制重构 :
转到 Refactor → 复制,它将打开对话框.
输入新名称和目的地包.
单击确定按钮,它将完成所需.
移动重构类似于复制,但不是制作另一个副本,而是将代码移动到一个不同的包或将其作为另一个类的内部类.
按照以下步骤执行移动重构 :
转到,Refactor → 移动.
将出现一个新窗口.
根据需要选择其中一个选项根据您的选择并点击Refactor.
安全删除操作只有在
项目中的任何地方未被引用时才会删除对象.此选项的目标可以是类,接口,方法,字段或参数.
让我们看看这个实际操作.在编辑器中输入以下代码 :
public class HelloWorld { static void sayHello() { System.out.println("Hello, World !!!"); } public static void main(String[] args) { sayHello(); } }
按照以下步骤执行安全删除操作 :
选择 sayHello()方法.
右键单击在它上面选择 Refactor → 安全删除
选项.
由于正在使用sayHello()方法,因此会显示错误,如以下
屏幕截图所示;
操作修改方法签名.它可以更改方法名称,参数,
类型,返回值等.让我们从上面的示例中获取一个方法并将
更改为其签名.
按照以下步骤执行更改签名操作 :
选择方法.
右键单击它并选择Refactor → 更改签名操作
将出现一个新窗口,您可以在其中执行上述操作.
在窗口底部,它显示新签名的预览.
类型迁移会更改符号的类型.此符号可以是方法参数或类属性.在执行所需操作之前,让我们考虑以下方法 :
static void sayHello(String name) { System.out.println(name); }
按照以下步骤执行类型迁移 :
选择"String"数据类型.
右键单击它并选择 Refactor → 类型迁移.
在给定的文本框中输入所需的数据类型.
选择范围并单击"重构"按钮.