【问题标题】:Java differentiate between serialization on disk over networkJava 区分网络磁盘上的序列化
【发布时间】:2016-06-06 17:45:12
【问题描述】:

我正在尝试通过磁盘和网络序列化我的简单 POJO 对象。但我需要控制可以序列化的属性。 例如:

class POJO
{
    String name;
    int age;
}

现在在上面的示例中,我希望名称和年龄都在磁盘上进行序列化。但我只想通过网络对年龄进行序列化。 在做了一些研发之后,我找到了两种方法来做到这一点,但我还没有能够开发出一个好的全功能解决方案。

解决方案 1:使用瞬态关键字。

问题:如果我使用瞬态,它会完全停止序列化。

解决方案 2:利用可外部化的接口。

问题:如果我使用这个接口,我必须实现两个方法并自己控制序列化。我怎么知道这次我的方法被调用以在磁盘或网络上进行序列化。如果我确实通过使用一些标志来解决这个问题,那么代码会很混乱。

我的想法是某种形式的设计级解决方案。例如创建一个接口,只为那些需要序列化的属性公开 getter 方法。然后使用它,我可以读取和写入对象,并且反序列化时的 java 通过反射或我必须仅序列化/反序列化那些暴露了 getter 方法的属性自动检测。 java有这样的东西吗?

或者也许是更清洁、更优雅、更整洁的解决方案。

请帮帮我。

谢谢。

【问题讨论】:

    标签: java networking serialization


    【解决方案1】:

    Use customized serializes. 一个用于磁盘,另一个用于网络。

    【讨论】:

      猜你喜欢
      • 2013-11-02
      • 2016-01-03
      • 1970-01-01
      • 2015-01-05
      • 2011-01-09
      • 2013-10-01
      • 2017-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多