2010-09-20 2 views
7

Wenn ich eine Schnittstelle mit ein paar Methoden habe. Manchmal muss ich eine neue Implementierung der Schnittstelle erstellen, die eine andere Instanz der Schnittstelle umschließt und die meisten Methoden an die umbrochene Instanz delegiert. Dann würde ich einige Implementierungen ändern und sie vielleicht nicht delegieren.Hat IntelliJ IDEA einen Create Wrapper Code Generator

Ein klassisches Beispiel wären die Methoden Collections.unmodifiableXXX() im JDK, die den Zugriff auf die Modifikationsmethoden blockieren.

Hat IntelliJ Code-Unterstützung, die eine Delegate-Implementierung der Schnittstelle generiert, und dann kann ich nur ein paar Methoden optimieren?

Antwort

13

Sie können es in zwei Stufen tun. Zuerst implementieren Sie die Schnittstelle und dann die Delegation

+5

Vielen Dank. Um klar zu sein, sind die Schritte .. 1) Schnittstelle implementieren. 2) Fügen Sie die Zielelementvariable hinzu, an die delegiert wird. 3) Verwenden Sie Code | Delegieren, und wählen Sie zuerst das Ziel der Mitgliedsvariablen und dann alle Methoden aus, die Sie delegieren möchten. –

11

Code|Delegate Methods

+0

Dies ist nützlich, um basierend auf einem Feldelement statt einer Basisklasse zu delegieren –

+0

Dieses Refactoring kann auch über Alt + Menü aufgerufen werden. –

+0

@ Jonathan Neufeld Wenn Sie Methoden überschreiben, wird der Aufruf der Basisklassenimplementierung standardmäßig eingefügt. –