Есть ли в Eclipse ярлык для генерации кода для декораторов? - PullRequest
22 голосов
/ 05 апреля 2011

Мне было интересно, есть ли какая-то функциональность для генерации скелетов декоратора из интерфейса, подобного Generate Setters and Getters.Я хотел бы создать класс из интерфейса, который взял бы экземпляр этого интерфейса и реализовал каждый метод как вызывающий тот же метод с теми же параметрами в экземпляре.У меня есть некрасивый класс из библиотеки, который я хотел бы украсить, но у него есть ~ 50 методов, и я хочу изменить только функциональность одного из них и сохранить некоторую типизацию.Есть что-нибудь подобное?

Пример, учитывая интерфейс:

 interface FooBar{
      void foo( Object o );
      Object bar();
 }

производит что-то вроде класса:

 class FooBarDecorator implements FooBar{
      private final FooBar fubee;

      FooBarDecorator( final FooBar fb ){
           this.fubee = fb;
      }

      public void foo( Object o ){
           this.fubee.foo( o );
      }

      public Object bar(){
           return this.fubee.bar();
      }
 }

1 Ответ

32 голосов
/ 05 апреля 2011

Да !! Щелкните правой кнопкой мыши на члене fubee, выберите Source -> Generate Delegate Methods -> готово! Хотя я думаю, что для этого нужно написать

class FooBarDecorator implements FooBar {
// [...]

Разрешение декоратору реализовать интерфейс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...