最小的序列化集合

我有一个Java应用程序,(胖客户端,服务器,数据库)。所有的服务器方法调用都会返回一个Vector(服务器代码最初是在几年前建立的,并且一致性保持不变)。矢量总是返回2个位置,不管是什么呼叫。第一个位置是一个错误对象(或null),用于在客户端处理方法调用时警告服务器出现的任何问题。第二个位置是我们想要的数据。它可以是对象的ArrayList,String,int等等;无论胖客户在找什么。

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

除了将位置0和1传送到客户端之外,我不需要任何功能,因为一旦这个集合到达客户端,位置0就会被检查出错,并且位置1被拉出并交给调用的代码块,因为无论哪个对象被存储在那里。

有什么建议么?

0
额外 编辑
意见: 1
如果“试图减少占用空间并提高服务器调用的性能”,那么性能瓶颈是什么?它肯定不是阵列车。除非您从头到尾知道前5个性能瓶颈,否则不要优化它。
额外 作者 TheBlastOne,

1 答案

创建一个班级:

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

并使用它作为结果。

根据您的需要,使属性保密或不保存,并添加setter/getters或不,...但总体思路:创建一个包含两个序列化属性的类。

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

0
额外