Intellij Idea - Refactorización de código

En este capítulo, aprenderemos sobre la refactorización de código y cómo funciona en IntelliJ. La refactorización de código es la reestructuración del código sin cambiar su funcionalidad y usabilidad. La refactorización de código se puede realizar para mejorar la legibilidad del código, el rendimiento o para eliminar la funcionalidad no utilizada / duplicada. IntelliJ proporciona un gran soporte para la refactorización de código. Este capítulo analiza varias acciones de refactorización de código.

Rebautizar

Las acciones de cambio de nombre se pueden utilizar para cambiar el nombre de métodos, sus parámetros, atributos de clase, variables locales, etc. Creemos la siguiente clase en 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);
   }
}

Ahora, cambiemos el nombre Employee clase a Person. Esta acción hará modificaciones en los constructores y elmain() método -

  • Seleccionar palabra de empleado

  • Ir Refactor → Rename y cámbiele el nombre por Person.

Reemplazar duplicados de código

Esta es una de las poderosas acciones de refactorización. IntelliJ identifica el código duplicado y lo reemplaza con el código apropiado. Introduzcamos la duplicación de código y refactoricemos. Escriba el siguiente código en el 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();
   }
}

En este ejemplo, Empleado (nombre de cadena, dirección de cadena, int edad) constructor y public void setData (nombre de cadena, dirección de cadena, intage) son exactamente idénticos. Después de la refactorización, el constructor Employee (String name, String address, int age) se modifica de la siguiente manera:

public Employee(String name, String address, int age) {
   setData(name, address, age);
}

Para reemplazar los duplicados:

  • Vaya a Refactor → Buscar y reemplazar duplicados de código.

  • Seleccione el alcance de la refactorización y siga los pasos en pantalla para completar la acción.

Copiar refactorización

En esta sección, entenderemos cómo copiar una clase a otra. Copiemos la clase Empleado a la clase Persona. Podemos copiarlo en el módulo existente o en uno nuevo. IntelliJ hará los cambios necesarios dependiendo de ello. Siga estos pasos para realizar la refactorización de copia:

  • Ir Refactor → Copy, abrirá el cuadro de diálogo.

  • Ingrese el nuevo nombre y el paquete de destino.

  • Haga clic en el botón Aceptar y hará lo necesario.

Mover la refactorización

Mover la refactorización es similar a copiar pero en lugar de hacer otra copia, mueve el código a un paquete diferente o lo convierte en una clase interna de otra clase.

Siga estos pasos para realizar la refactorización de movimientos:

  • Vaya a Refactorizar → Mover.

  • Una ventana nueva aparecerá.

  • Seleccione una de las opciones según su elección y haga clic en Refactor.

Eliminación segura

La acción Safe Delete eliminará el objeto solo cuando no se haga referencia a él en ninguna parte del proyecto. El destino de esta opción puede ser clase, interfaz, método, campo o parámetro.

Veamos esto en acción. Escriba el siguiente código en el Editor:

public class HelloWorld {
   static void sayHello() {
      System.out.println("Hello, World !!!");
   }
   public static void main(String[] args) {
      sayHello();
   }
}

Siga estos pasos para realizar la acción de eliminación segura:

  • Selecciona el sayHello() método.

  • Haga clic derecho sobre él y seleccione el Refactor → Safe Delete opción.

  • Mientras se usa el método sayHello (), mostrará un error como en la siguiente captura de pantalla:

Cambiar firma

La acción modifica la firma del método. Puede cambiar el nombre del método, sus parámetros, tipos, valores de retorno, etc. Tomemos un método del ejemplo anterior y cambiemos su firma.

Siga estos pasos para realizar la acción Cambiar firma:

  • Seleccione el método.

  • Haga clic derecho sobre él y seleccione la acción Refactor → Cambiar firma

  • Aparecerá una nueva ventana en la que puede realizar las acciones anteriores.

  • En la parte inferior de la ventana, muestra la vista previa de la nueva firma.

Tipo de migración

La migración de tipos cambia el tipo de símbolo. Este símbolo puede ser un parámetro de método o un atributo de clase. Consideremos el siguiente método antes de realizar la acción requerida:

static void sayHello(String name) {
   System.out.println(name);
}

Siga estos pasos para realizar la migración de tipos:

  • Seleccione el tipo de datos "Cadena".

  • Haga clic derecho sobre él y seleccione Refactor → Type migration.

  • Ingrese el tipo de datos requerido en el cuadro de texto dado.

  • Elija el alcance y haga clic en el botón Refactorizar.