Java通过网络区分磁盘上的序列化

时间:2016-06-06 17:45:13

标签: java networking serialization

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

class POJO
{
    String name;
    int age;
}

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

解决方案1 ​​:使用transient关键字。

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

解决方案2 :使用可外部化的界面。

问题:如果我使用这个界面,我必须实现两个方法并控制自己的序列化。我怎么知道这次我的方法被调用在磁盘或网络上进行序列化。如果我以某种方式通过使用一些标志来弄清楚这一点,那么代码将是混乱的。

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

可能是更清洁,更优雅,更整洁的解决方案。

请帮帮我。

感谢。

1 个答案:

答案 0 :(得分:0)

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