最小的序列化集合

时间:2012-05-21 17:35:24

标签: java performance serialization collections vector

我有一个Java应用程序,(胖客户端,服务器,数据库)。所有服务器方法调用都返回一个Vector(服务器代码最初是在几年前构建的,为保持一致性而保持不变)。 Vector ALWAYS返回2个位置,无需调用。第一个位置是一个错误对象(或null),用于警告客户端在处理方法调用时服务器遇到的任何问题。第二个位置是我们想要的数据。它可以是Objects的ArrayList,String,int,ect;无论胖客户在寻找什么。

我正在尝试减少占用空间并提高服务器调用的性能。我正在看的一件事是删除返回的Vector并用一些东西替换它们。我的问题是什么。如上所述,此集合将始终为2个位置,将位置0作为错误对象(如果没有错误则为null),将位置1作为“我的数据”。它永远不需要排序,它基本上用于返回2个参数的方法(并在从服务器到客户端时将它们序列化)。

除了将位置0和1传送到客户端之外我不需要任何功能,因为一旦这个集合到达客户端,就会检查位置0是否有错误,并且位置1被拉出并传递给调用的代码片段作为任何对象存放在那里。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

创建一个类:

class MeaningfulNameForTheResult
{
  public Error error;
  public Object result;
}

并将其作为结果使用。

根据您的需要将属性设为私有或不添加setter / getter,但是,但总的想法是:创建一个具有两个序列化属性的类。

编辑:可能......根据您的需要,您甚至可以完全删除该对象。如果一切正常,只需返回您想要的结果对象,如果出错则返回错误对象。在客户端中,反序列化对象,然后检查类型。如果它是instanceof Error,那么你知道这是一个错误,否则就是你的结果。