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.