我有一個情況介紹如下:的Java:以匿名類外
Class C1 {
public static void main(String[] args) {
Object o = // new object of some class
delegate(new C2() { // C2 is an abstract class or interface
public void delegateLogic() {
Object my_o = o; // refrences main's local variable
// huge method body
// object o local to main is required here
}
});
}
private void delegate(C2 c2) {
// method body
}
}
delegateLogic的主體()是談到了非常大的。代碼可維護性:
- 我想從C2創建一個具體類,並保持它在外面,同時仍然有一種方法來使用主方法中的對象o。
- 另外,C2的實例應該是可序列化的,不幸的是,對象o不可序列化。所以,我不想通過在構造函數中傳遞object o來在C2中創建一個成員對象。
任何想法?
如果你想使這個序列化,你必須找到一些方法來以可序列化的形式至少捕獲'o'的相關部分。 – Thilo
另外,我無法控制o的類(可能的類)的定義。 – Mohitt
你可以製作一個靜態字段嗎? –