代号一静态初始化块被忽略
Codename one static initialisation block ignored
似乎静态初始化块在 CN1 中不起作用,例如,自定义外部化的注册 class:
public class User {
static {
Util.register("User", User.class);
}
...
}
但是,在 CN1 的一篇博客中,我发现这是注册可外部化 classes 的推荐方式。在文档中找不到答案。我是不是错过了什么,或者 CN1 实际上不支持静态初始化块?
静态初始化工作得很好。
虽然你所做的是行不通的...例如:
Object o = storage.readObject(...);
假设 o 是一个 User
,class 尚未初始化,因此没有静态初始化程序,没有寄存器调用,序列化代码将失败。
这就是为什么我们总是在 main class 的 init(Object)
方法中注册,而从不在静态初始化程序中注册。
似乎静态初始化块在 CN1 中不起作用,例如,自定义外部化的注册 class:
public class User {
static {
Util.register("User", User.class);
}
...
}
但是,在 CN1 的一篇博客中,我发现这是注册可外部化 classes 的推荐方式。在文档中找不到答案。我是不是错过了什么,或者 CN1 实际上不支持静态初始化块?
静态初始化工作得很好。
虽然你所做的是行不通的...例如:
Object o = storage.readObject(...);
假设 o 是一个 User
,class 尚未初始化,因此没有静态初始化程序,没有寄存器调用,序列化代码将失败。
这就是为什么我们总是在 main class 的 init(Object)
方法中注册,而从不在静态初始化程序中注册。