2010-09-20 2 views
7

Si j'ai une interface avec quelques méthodes. Parfois, j'ai besoin de créer une nouvelle implémentation de l'interface qui enveloppe une autre instance de l'interface et délègue la plupart des méthodes à l'instance encapsulée. Ensuite, je voudrais changer quelques-unes des implémentations, peut-être ne pas les déléguer.Est-ce que IntelliJ IDEA a un générateur de code Create Wrapper

Un exemple classique serait les méthodes Collections.unmodifiableXXX() dans le JDK qui bloquent l'accès aux méthodes de modification. Est-ce que IntelliJ a une assistance de code qui va générer une implémentation déléguée de l'interface, et puis je peux simplement modifier quelques méthodes?

Répondre

13

Vous pouvez le faire en deux étapes. Première implémentation de l'interface, puis introduction de la délégation

+5

Merci. Pour être clair, les étapes sont .. 1) Implémenter l'interface. 2) Ajouter la variable de membre cible à laquelle est déléguée. 3) Utilisez Code | Déléguer et sélectionnez d'abord la cible de la variable membre, puis toutes les méthodes que vous souhaitez déléguer. –

11

Code|Delegate Methods

+0

Ceci est utile pour déléguer en fonction d'un membre de champ plutôt que d'une classe de base –

+0

Ce refactoring est également accessible à partir du menu Alt + Entrée. –

+0

@Jonathan Neufeld lorsque vous remplacez les méthodes, l'appel à l'implémentation de la classe de base est inséré par défaut. –

Questions connexes