2010-09-20 10 views
7

Jeśli mam interfejs z kilkoma metodami. Czasami potrzebuję stworzyć nową implementację interfejsu, która owija kolejną instancję interfejsu i przekazuje większość metod do owiniętej instancji. Potem zmieniłbym kilka implementacji, być może nie delegując ich.Czy IntelliJ IDEA ma generator kodu Utwórz opakowanie

Klasycznym przykładem będzie metoda Collections.unmodifiableXXX() w JDK, która blokuje dostęp do metod modyfikacji.

Czy IntelliJ ma jakąkolwiek pomoc dotyczącą kodu, która wygeneruje delegowaną implementację interfejsu, a następnie mogę zmienić kilka metod?

Odpowiedz

13

Możesz to zrobić w dwóch etapach. Pierwszy implementować interfejs, a następnie wprowadzić delegacja

+5

Dzięki. Aby się upewnić, kroki są następujące: 1) Interfejs narzędzia. 2) Dodaj zmienną członka docelowego, do której jest delegowana. 3) Użyj Code | Delegate i najpierw wybierz element docelowy zmiennej, a następnie wszystkie metody, które chcesz delegować. –

11

Code|Delegate Methods

+0

Jest to przydatne do delegowania na podstawie elementu pola, a nie klasy bazowej. –

+0

Do tego refaktoryzacji można również uzyskać dostęp z menu Alt + Enter. –

+0

@ Jonathan Neufeld, gdy nadpisujesz metody, domyślnie wstawiane jest wywołanie do implementacji klasy podstawowej. –