似乎静态初始化块在CN1中不起作用,例如,注册自定义外部类:
public class User {
static {
Util.register("User", User.class);
}
...
}
然而,在CN1博客之一中我发现这是注册externalisable类的推荐方法。无法在文档中找到答案。我错过了什么或者CN1实际上不支持静态初始化块吗?
答案 0 :(得分:1)
静态初始化工作正常。
你做过的事情虽然不起作用......例如:
Object o = storage.readObject(...);
假设o是User
,那么该类没有被初始化,因此没有静态初始化器,没有寄存器调用,序列化代码也会失败。
这就是为什么我们总是在主类的init(Object)
方法中注册,而不是在静态初始化器中注册。