Intellij Idea - การปรับโครงสร้างโค้ด
ในบทนี้เราจะเรียนรู้เกี่ยวกับ Code Refactoring และวิธีการทำงานใน 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() วิธีการ -
เลือกคำว่าพนักงาน
ไปที่ Refactor → 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 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();
}
}
ในตัวอย่างนี้พนักงาน (ชื่อสตริงที่อยู่สตริง int อายุ) ตัวสร้างและ public void setData (ชื่อสตริงที่อยู่สตริง intอายุ) วิธีการเหมือนกันทุกประการ หลังจากการปรับโครงสร้างใหม่ตัวสร้างพนักงาน (ชื่อสตริงที่อยู่สตริงอายุ int) จะได้รับการแก้ไขดังนี้ -
public Employee(String name, String address, int age) {
setData(name, address, age);
}
เพื่อแทนที่รายการที่ซ้ำกัน -
ไปที่ Refactor →ค้นหาและแทนที่รหัสซ้ำ
เลือกขอบเขตตัวอ้างอิงและทำตามขั้นตอนบนหน้าจอเพื่อดำเนินการให้เสร็จสิ้น
คัดลอก Refactoring
ในส่วนนี้เราจะเข้าใจวิธีการคัดลอกคลาสหนึ่งไปยังอีกคลาสหนึ่ง ให้เราคัดลอกคลาส Employee เป็นคลาส Person เราสามารถคัดลอกไปยังโมดูลที่มีอยู่หรือโมดูลใหม่ IntelliJ จะทำการเปลี่ยนแปลงที่จำเป็นขึ้นอยู่กับมัน ทำตามขั้นตอนเหล่านี้เพื่อทำการคัดลอก refactoring -
ไปที่ Refactor → Copyมันจะเปิดกล่องโต้ตอบ
ป้อนชื่อและแพ็กเกจปลายทางใหม่
คลิกที่ปุ่มตกลงและจะทำตามความจำเป็น
ย้าย Refactoring
การปรับโครงสร้างการย้ายจะคล้ายกับการคัดลอก แต่แทนที่จะทำสำเนาอีกครั้งจะเป็นการย้ายรหัสไปยังแพ็คเกจอื่นหรือทำให้เป็นคลาสภายในของคลาสอื่น
ทำตามขั้นตอนเหล่านี้เพื่อทำการย้าย refactoring -
ไปที่ Refactor → Move
หน้าต่างใหม่จะปรากฏขึ้น
เลือกหนึ่งในตัวเลือกตามที่คุณต้องการแล้วคลิกที่ Refactor
ปลอดภัยลบ
การดำเนินการ Safe Delete จะลบออบเจ็กต์เฉพาะเมื่อไม่มีการอ้างอิงที่ใดก็ได้ในโปรเจ็กต์ เป้าหมายสำหรับอ็อพชันนี้อาจเป็นคลาสอินเทอร์เฟซเมธอดฟิลด์หรือพารามิเตอร์
ให้เราเห็นในการดำเนินการ พิมพ์รหัสต่อไปนี้ใน Editor -
public class HelloWorld {
static void sayHello() {
System.out.println("Hello, World !!!");
}
public static void main(String[] args) {
sayHello();
}
}
ทำตามขั้นตอนเหล่านี้เพื่อดำเนินการลบอย่างปลอดภัย -
เลือกไฟล์ sayHello() วิธี.
คลิกขวาที่ไฟล์แล้วเลือกไฟล์ Refactor → Safe Delete ตัวเลือก
เนื่องจากมีการใช้เมธอด sayHello () มันจะแสดงข้อผิดพลาดดังภาพหน้าจอต่อไปนี้ -
เปลี่ยนลายเซ็น
การดำเนินการแก้ไขลายเซ็นของวิธีการ สามารถเปลี่ยนชื่อเมธอดพารามิเตอร์ประเภทค่าส่งคืนและอื่น ๆ ให้เราใช้วิธีการจากตัวอย่างข้างต้นและเปลี่ยนลายเซ็น
ทำตามขั้นตอนเหล่านี้เพื่อดำเนินการเปลี่ยนลายเซ็น -
เลือกวิธีการ
คลิกขวาที่มันแล้วเลือก Refactor → Change signature action
หน้าต่างใหม่จะปรากฏขึ้นซึ่งคุณสามารถดำเนินการข้างต้นได้
ที่ด้านล่างของหน้าต่างจะแสดงตัวอย่างลายเซ็นใหม่
พิมพ์ Migration
การย้ายประเภทจะเปลี่ยนประเภทของสัญลักษณ์ สัญลักษณ์นี้สามารถเป็นพารามิเตอร์วิธีการหรือแอตทริบิวต์คลาส ให้เราพิจารณาวิธีการต่อไปนี้ก่อนดำเนินการตามที่กำหนด -
static void sayHello(String name) {
System.out.println(name);
}
ทำตามขั้นตอนเหล่านี้เพื่อทำการโอนย้ายประเภท -
เลือกประเภทข้อมูล "สตริง"
คลิกขวาแล้วเลือก Refactor → Type migration.
ป้อนประเภทข้อมูลที่ต้องการในกล่องข้อความที่กำหนด
เลือกขอบเขตและคลิกที่ปุ่ม Refactor