Comment utiliser Lombok @Générateur d'annotation sur les Méthodes
Je veux avoir un moyen facile de construire des données de test et nous avons trouvé le Générateur de modèle pour être un bon ajustement, comme décrit ici. Toutefois, afin de réduire les passe-partout de codes dans le composant tests encore plus, j'ai trouvé @Builder de Projet de Lombok à être un bon candidat pour essayer. Cependant, je ne peux pas le trouver toute la documentation en ligne ou des exemples sur la façon de l'utiliser dans une méthode. Je veux utiliser @Builder sur une sorte de méthode de fabrique depuis je ne peux pas faire toutes les modifications apportées à la mise en œuvre.
Quelqu'un peut-il donner un exemple sur la façon de réellement utiliser @Builder sur une méthode?
parce que je n'ai pas accès à la classe et ne peut pas apporter des modifications à elle.
OriginalL'auteur user3139545 | 2016-04-28
Vous devez vous connecter pour publier un commentaire.
crée un final immuable objet de valeur avec des méthodes accesseurs (getters), un tous les arguments du constructeur, equals(), hashCode() et toString(). Je l'ai fait simplement pour des raisons de commodité dans l'exemple.
Puis-je utiliser @Builder sur mutable classea avec les poseurs?
Bien sûr! Permettez-moi d'ajouter une démo.
Ajout d'une mutable exemple, cependant, comme toujours favorable à l'immutabilité chaque fois que possible,
OriginalL'auteur Jeff
C'est la façon dont vous utilisez @Builder.
Cela ne répond pas à la question: quelqu'un Peut-il donner un exemple sur la façon de réellement utiliser @Builder sur une méthode?
C'est la bonne réponse et ici on vous dit un exemple clair:
Person.builder().name("Adam Savage").city("San Francisco").job("Mythbusters").job("Unchained Reaction").build();
peut être utilisé si vous ajoutez @Générateur de l'annotation à l'Person
classe.Ce n'est pas vraiment. La question a été spécifiquement sur l'utilisation de
@Builder
sur une méthode, et non sur le niveau de la classe. Le lombok documentation a un bref exemple pour le niveau de la classe seulement, et à partir de la description il n'est pas facile de dire comment l'utiliser sur le niveau de la méthode.vous avez raison, OP voulais savoir son utilisation au niveau de la méthode et de la documentation officielle, qui est en fait tout un gâchis, n'est-ce pas à l'expliquer clairement.
OriginalL'auteur Deendayal Garg
Je pense que la réponse ci-Dessus complété les réponses, mais je tiens à souligner quelques points ici, si vous utilisez le générateur de il va générer ces 7 choses comme indiqué dans la documentation.
• Dans le générateur de rapports: l'Un privé non-statique non-finale de champ pour chaque paramètre de la cible.
• Dans le constructeur: colis privé non-args constructeur vide.
• Dans le constructeur: Un "setter" méthode pour chaque paramètre de la cible: Il a le même type que le paramètre et le même nom. Elle renvoie le constructeur lui-même, de sorte que le setter appels peuvent être enchaînés, comme dans l'exemple ci-dessus.
• Dans le constructeur: Une méthode build() qui appelle la méthode, en passant dans chaque domaine. Il retourne le même type que l'objectif de rendement.
• Dans le constructeur: Un bon toString() de la mise en œuvre.
• Dans la classe contenant la cible: Un générateur de (), qui crée une nouvelle instance du constructeur.
• Un intérieur de classe statique nommé FooBuilder, avec le même type d'arguments que la méthode statique (appelée par le constructeur).
Lombok crée un problème lorsque vous avez à écrire des scénarios de test unitaire et votre organisation vous dit de ne pas ignorer modèle/pojo aussi, à ce moment la couverture de ces auto généré des méthodes est un peu lourd.
OriginalL'auteur Vipul