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. 
 
 
    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. 
 
 
    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. 
 
 
    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. 
 
 
    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: 
 
 
    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. 
 
 
    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. 
 
 
    - Immettere il tipo di dati richiesto nella casella di testo fornita. 
- Scegli l'ambito e fai clic sul pulsante Refactoring. 
