2010-09-20 2 views
7

Если у меня есть интерфейс с несколькими методами. Иногда мне нужно создать новую реализацию интерфейса, которая обертывает другой экземпляр интерфейса и делегирует большинство методов обернутому экземпляру. Тогда я бы изменил пару реализаций, возможно, не делегировал их.У IntelliJ IDEA есть генератор кода Wrapper

Классическим примером может служить методы Collections.unmodifiableXXX() в JDK, которые блокируют доступ к методам модификации.

Имеет ли IntelliJ какую-либо помощь в коде, которая будет генерировать реализацию интерфейса делегата, а затем я могу просто настроить несколько методов?

ответ

13

Вы можете сделать это в два этапа. Сначала реализуйте интерфейс, а затем представите делегацию

+5

Спасибо. Чтобы быть ясными, выполните следующие действия: 1) Внедрите интерфейс. 2) Добавить целевую переменную-член, которой делегируется. 3) Используйте Code | Delegate и сначала выберите целевую переменную-член, а затем все методы, которые вы хотите делегировать. –

11

Code|Delegate Methods

+0

Это полезно для делегирования на основе члена поля, а не базового класса. –

+0

. Этот рефакторинг можно также получить из меню Alt + Enter. –

+0

@Jonathan Neufeld, когда вы переопределяете методы, вызов по умолчанию для базового класса вставлен по умолчанию. –

Смежные вопросы