Скажем, у меня есть этот интерфейс:
public interface Foo {
int getBar();
String getName();
// ... 10 other methods
}
И затем у меня есть этот класс, который я не могу изменить:
public final class FooImpl {
int getBar();
String getFirstName();
String getLastName();
// ... 10 other methods which matches Foo
}
Мне нужно использовать значение из FooImpl в методе, который принимает Foo. Достаточно просто написать оболочку вручную (например, с помощью анонимного класса), которая реализует Foo и пересылает все соответствующему методу в FooImpl (за исключением getName(), который требует некоторой дополнительной логики от getFirstName и getLastName). Есть ли способ (желательно из общей библиотеки, такой как Guava) для динамического создания такой оболочки с учетом того, что требование:
- Я хочу указать пользовательскую логику для одного или двух методов
- Для остальных просто перенаправьте методы с таким же именем