2016-12-12 13 views
1

說我有這個接口:動態創建一個與接口幾乎匹配的類的實現?

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並將所有內容都轉發給FooImpl中的相應方法(getName()除外,這需要getFirstName和getLastName中的額外邏輯)。有沒有一種方法(優選像番石榴公用庫)動態創建發出這樣的包裝,即要求:

  • 我想指定自定義邏輯一個或兩個方法
  • 對於剩下的,只是轉發給同名方法
+0

儘管很痛苦,我建議這...你有沒有嘗試過使用動態代理? –

回答

0

有一種方法。如果您創建了一個接口的對象引用,它包含實現該接口的類的Object的引用。然後那個Object引用能夠訪問那些東西。