Katakanlah saya memiliki antarmuka ini:
public interface Foo {
int getBar();
String getName();
// ... 10 other methods
}
Dan kemudian saya memiliki kelas ini, yang tidak dapat saya modifikasi:
public final class FooImpl {
int getBar();
String getFirstName();
String getLastName();
// ... 10 other methods which matches Foo
}
Saya perlu menggunakan nilai dari FooImpl ke metode yang menggunakan Foo. Cukup mudah untuk menulis pembungkus dengan tangan (misalnya dengan kelas anonim), yang mengimplementasikan Foo dan meneruskan semuanya ke metode terkait di FooImpl (kecuali untuk getName() yang memerlukan logika tambahan dari getFirstName dan getLastName). Apakah ada cara (sebaiknya dari perpustakaan umum seperti Guava) untuk membuat pembungkus seperti itu secara dinamis mengingat persyaratan bahwa:
- Saya ingin menentukan logika khusus untuk satu atau dua metode
- Selebihnya, teruskan saja ke metode dengan nama yang sama