我有一个情况介绍如下:的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
你可以制作一个静态字段吗? –