84 votes

Génération de code de type Builder dans IntelliJ

Existe-t-il un moyen d'automatiser l'écriture des patterns Builder dans IntelliJ ?

Par exemple, étant donné cette classe simple :

class Film {
   private String title;
   private int length;

   public void setTitle(String title) {
       this.title = title;
   }

   public String getTitle() {
       return this.title;
   }

   public void setLength(int length) {
       this.length = length;
   }

   public int getLength() {
       return this.length;
   }
}

Y a-t-il un moyen de faire en sorte que l'IDE génère ceci, ou quelque chose de similaire ?

public class FilmBuilder {

    Film film;

    public FilmBuilder() {
        film = new Film();
    }

    public FilmBuilder withTitle(String title) {
        film.setTitle(title);
        return this;
    }

    public FilmBuilder withLength(int length) {
        film.setLength(length);
        return this;
    }

    public Film build() {
        return film;
    }
}

0voto

ThisCompSciGuy Points 86

J'ai trouvé le Bâtisseur intérieur efficace est la meilleure option car elle ajoute des vérifications nulles et peut commencer avec seulement les membres définis.

0voto

AryehSa Points 11

En plus de la réponse de CrazyCoder et du commentaire de Chris B . Il y a un énorme avantage à utiliser le refactor d'Intellij par rapport à l'utilisation du plugin InnerBuilder mentionné par Mansoor Siddiqui, à savoir que si le constructeur est déjà utilisé dans le code, il sera refactorisé vers le nouveau constructeur créé, ce qui n'est pas le cas avec InnerBuilder.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X