3

这样做很简单,将对象写入文件,然后读取它:

我的问题是

  1. 为什么当我们把 [RemoteClass(alias="foo.Bar")] 放入 VO 时,它可以自动转换(否则反序列化的对象的类型是 Generic Object,里面有正确的属性数据)?
  2. 没有RemoteClass标签是否有另一种方法来实现它?(使用元数据标签是首选)

谢谢

4

1 回答 1

2
  1. 答案在您链接到的页面中:

    请注意,别名是与类实例一起存储的键,当该对象的实例被序列化时,它将类定义与存储在 ByteArray 中的特定对象链接起来。此键可以是标识此类的任何唯一字符串,但约定是使用完全规范化的包和类名。

    这就是为什么如果你省略别名你会得到一个通用对象——反序列化​​方法不知道如何处理数据,除非你指定值应该映射到哪个类。

  2. 是的,有:registerClassAlias()做同样的事情。但是元数据标签更容易阅读;)

于 2012-04-11T18:07:42.260 回答