Есть ли ярлык в Eclipse для генерации кода для декораторов?
Мне было интересно, есть ли какая-то функциональность для создания скелетов декоратора из интерфейса, подобного 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
Да!! Щелкните правой кнопкой мыши на элементе fubee
, выберите Source
→ Generate Delegate Methods
→ done! Хотя, я думаю, что для этого вам нужно будет написать
class FooBarDecorator implements FooBar {
// [...]
Позволяя декоратору реализовать интерфейс