簡體   English   中英

根據給定的INSTANCE動態創建擴展的匿名類(在運行時重寫實例中的方法)

[英]Dynamically create an extended anonymous class from a given INSTANCE (override a method from an instance in runtime)

有沒有辦法動態地給另一個實例創建擴展的匿名實例? 會是這樣,我認為那會很棒。

File myFile = new File("notes.txt");

new FileWrapper extends myFile(){ //instance!!!
   @Override public boolean equals(File in){ return false;}
};

這就像復制對象實例並在特定方法中重新編寫邏輯一樣。如果不是,實現它的最佳方法是什么?

注意:我知道如果myFile是類的名稱而不是and實例,則該示例有效,但是我應該做一些事情來保存實例vars和內部信息。

不,Java中沒有這樣的功能。 您必須依賴將呼叫轉發到原始實例的代理對象,但要“覆蓋”的呼叫除外。

請注意,如果您希望代理對象具有與原始對象相同的類型 ,則需要使用接口,因為如果代理對象將擴展原始類型,則最終會有兩個實例(如果是完成工作的包裝對象)。

進一步閱讀:

(是的,我同意,如果有很多委托方法,那將變得一團糟...)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM