【问题标题】:Changing serialization process at run time在运行时更改序列化过程
【发布时间】:2013-08-28 03:03:55
【问题描述】:

我知道通过在类中包含必要的方法来自定义序列化过程。但是是否可以在运行时更改序列化过程??
例如,我已将类中的字段定义为瞬态,但我想在运行时对其进行序列化。这可以做到吗?怎么做?

提前致谢。

【问题讨论】:

    标签: java serialization


    【解决方案1】:

    我真的不知道,但我对此表示怀疑。也许您可以通过将字段设置为 null 当您不希望它序列化然后不将其定义为瞬态来执行此操作。

    【讨论】:

      【解决方案2】:

      您可以使用Externalizable。请参阅此处的示例。enter link description here。您必须控制何时以何种形式序列化什么。例如你可以check at runtime if the field is marked transient再做决定。

      【讨论】:

      • 我知道这件事。但这是编译时间。我的问题是关于在运行时更改它。
      • @Newbie cam 你解释一下你所说的运行时是什么意思?让我们说,如果您想有条件地序列化,那么您可以将该逻辑放入您的写入/读取方法中。
      • 我在问题中提到过。例如,我已将类中的字段定义为瞬态,但在程序执行期间,我想对其进行序列化。
      • 好的,我知道了。它可以告诉我一个字段是否是瞬态的,但是如何序列化它呢?因为类中存在序列化逻辑。
      • @Newbie 点是你不能。如果你想要一些不在规范中的东西,你需要编写自己的序列化代码。
      猜你喜欢
      • 2013-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 2015-09-10
      相关资源
      最近更新 更多