Intellij Idea - Refactoring del codice
In questo capitolo apprenderemo il refactoring del codice e come funziona in IntelliJ. Il refactoring del codice è la ristrutturazione del codice senza modificarne la funzionalità e l'usabilità. Il refactoring del codice può essere eseguito per migliorare la leggibilità e le prestazioni del codice o per rimuovere funzionalità inutilizzate / duplicate. IntelliJ fornisce un ottimo supporto per il refactoring del codice. Questo capitolo discute varie azioni di refactoring del codice.
Rinominare
Le azioni di ridenominazione possono essere utilizzate per rinominare metodi, i suoi parametri, attributi di classe, variabili locali e così via. Creiamo la seguente classe in 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);
}
}
Ora rinominiamo Employee classe a Person. Questa azione apporterà modifiche nei costruttori e inmain() metodo -
Seleziona parola dipendente
Vai a Refactor → Rename e rinominalo con Persona.
![](https://assets.edu.lat/intellij_idea/images/rename_actions.jpg)
Sostituisci duplicati di codice
Questa è una delle potenti azioni di refactoring. IntelliJ identifica i duplicati del codice e lo sostituisce con il codice appropriato. Introduciamo la duplicazione del codice e lo rifattorizziamo. Digita il seguente codice nell'Editor:
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();
}
}
In questo esempio, Employee (String name, String address, int età) costruttore e public void setData (nome stringa, indirizzo stringa, intetà) sono esattamente identici. Dopo il refactoring, il costruttore Employee (String name, String address, int age) viene modificato come segue:
public Employee(String name, String address, int age) {
setData(name, address, age);
}
Per sostituire i duplicati -
Vai a Refactoring → Trova e sostituisci duplicati di codice.
Seleziona l'ambito del refactoring e segui i passaggi sullo schermo per completare l'azione.
![](https://assets.edu.lat/intellij_idea/images/replace_code_duplicates.jpg)
Copia refactoring
In questa sezione capiremo come copiare una classe in un'altra. Copiamo la classe Employee nella classe Person. Possiamo copiarlo nel modulo esistente o in uno nuovo. IntelliJ eseguirà le modifiche richieste a seconda di esso. Segui questi passaggi per eseguire il refactoring della copia:
Vai a Refactor → Copy, aprirà la finestra di dialogo.
Immettere il nuovo nome e il pacchetto di destinazione.
Fare clic sul pulsante OK e farà il necessario.
![](https://assets.edu.lat/intellij_idea/images/copy_class.jpg)
Spostare il refactoring
Il refactoring di spostamento è simile alla copia ma invece di fare un'altra copia sposta il codice in un pacchetto diverso o lo rende come classe interna di un'altra classe.
Segui questi passaggi per eseguire il refactoring dello spostamento:
Vai a, Refactoring → Sposta.
Apparirà una nuova finestra.
Seleziona una delle opzioni in base alla tua scelta e fai clic su Refactor.
![](https://assets.edu.lat/intellij_idea/images/move_refactoring.jpg)
Eliminazione sicura
L'azione di eliminazione sicura eliminerà l'oggetto solo quando non è referenziato da nessuna parte nel progetto. L'obiettivo per questa opzione può essere classe, interfaccia, metodo, campo o parametro.
Vediamolo in azione. Digita il codice seguente nell'editor:
public class HelloWorld {
static void sayHello() {
System.out.println("Hello, World !!!");
}
public static void main(String[] args) {
sayHello();
}
}
Segui questi passaggi per eseguire l'azione di eliminazione sicura:
Seleziona il sayHello() metodo.
Fai clic destro su di esso e seleziona il file Refactor → Safe Delete opzione.
Poiché viene utilizzato il metodo sayHello (), verrà visualizzato un errore come nella schermata seguente:
![](https://assets.edu.lat/intellij_idea/images/safe_delete_action.jpg)
Cambia firma
L'azione modifica la firma del metodo. Può modificare il nome del metodo, i suoi parametri, i tipi, i valori di ritorno e così via. Prendiamo un metodo dall'esempio sopra e cambiamo la sua firma.
Segui questi passaggi per eseguire l'azione Modifica firma:
Seleziona il metodo.
Fare clic con il pulsante destro del mouse e selezionare l'azione Refactoring → Cambia firma
Apparirà una nuova finestra in cui potrai eseguire le azioni di cui sopra.
Nella parte inferiore della finestra, mostra l'anteprima della nuova firma.
![](https://assets.edu.lat/intellij_idea/images/change_signature.jpg)
Digitare Migration
La migrazione del tipo cambia il tipo del simbolo. Questo simbolo può essere un parametro del metodo o un attributo di classe. Consideriamo il seguente metodo prima di eseguire l'azione richiesta:
static void sayHello(String name) {
System.out.println(name);
}
Segui questi passaggi per eseguire la migrazione del tipo:
Seleziona il tipo di dati "String".
Fai clic destro su di esso e seleziona Refactor → Type migration.
![](https://assets.edu.lat/intellij_idea/images/type_migration.jpg)
Immettere il tipo di dati richiesto nella casella di testo fornita.
Scegli l'ambito e fai clic sul pulsante Refactoring.