Saltar al contenido

Generación de código de patrón de constructor en IntelliJ

Solución:

Utilice la refactorización Reemplazar constructor con constructor.

Para usar esta función, haga clic en la firma del constructor en su código, luego haga clic derecho y seleccione el menú “Refactor”, luego haga clic en “Reemplazar constructor con constructor …” para que aparezca el cuadro de diálogo para generar el código.

Encontré que la generación de patrones de constructor incorporada en IntelliJ es un poco torpe por algunas razones:

  1. Necesita usar un constructor existente como referencia.
  2. No se puede acceder rápidamente a través del menú “Generar” (command+N en OS X).
  3. Solo genera clases externas de constructores. Como han mencionado otros, es muy común usar clases internas estáticas al implementar el patrón de construcción.

El complemento InnerBuilder soluciona todas estas deficiencias y no requiere instalación ni configuración. Aquí hay un constructor de muestra generado por el complemento:

public class Person {
    private String firstName;
    private String lastName;
    private int age;

    private Person(Builder builder) {
        firstName = builder.firstName;
        lastName = builder.lastName;
        age = builder.age;
    }

    public static final class Builder {
        private String firstName;
        private String lastName;
        private int age;

        public Builder() {
        }

        public Builder firstName(String firstName) {
            this.firstName = firstName;
            return this;
        }

        public Builder lastName(String lastName) {
            this.lastName = lastName;
            return this;
        }

        public Builder age(int age) {
            this.age = age;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }
}

A continuación, se explica cómo superar las deficiencias mencionadas por Mansoor Siddiqui:

1) Necesita usar un constructor existente como referencia.

Que es muy fácil de generar. Solo pega Alt + En s en Windows para invocar el menú Generar y elegir Constructor.

2) No se puede acceder rápidamente a través del menú “Generar” (comando + N en OS X)

Solo ve a Settings -> Keymap, buscar Builder y asígnele un atajo de su elección (si usa esta funcionalidad con mucha frecuencia, lo que rara vez es el caso). Puede asignar Alt + B por ejemplo.

Otra alternativa es control + Cambio + A (Buscar acción). Empiece a escribir Builder e inmediatamente obtendrás acceso al comando:

Cuadro de diálogo Buscar acción

Puede usar este atajo para acceder rápidamente a cualquier función de IntelliJ IDEA (esto ayuda mucho cuando no recuerda exactamente cómo se llama el comando y dónde encontrarlo).

3) Solo genera clases Builder externas. Como han mencionado otros, es muy común usar clases internas estáticas al implementar el patrón del constructor.

También prefiero a mis constructores como clases internas estáticas. Desafortunadamente, no hay una forma sencilla de hacerlo, pero aún es factible. Solo tiene que definir la clase interna anidada usted mismo (déjela vacía), y cuando invoque Replace Constructor with Builder diálogo, elija Use existing opción y seleccione su clase interna. ¡Funciona de maravilla! Sin embargo, hubiera sido más fácil configurar esta opción.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *