Java 返回空向量集合而不是null

Java 返回空向量集合而不是null,java,vector,collections,Java,Vector,Collections,我有一个返回向量的函数,如果出现错误,我想返回一个空向量,可以使用Collections.isEmpty通过调用方法进行检查。但是我找不到这样做的方法,因为Collections为List、Maps等提供Collections.emptyList函数,但不为Vector提供函数,我必须通过函数返回null,这是我想要避免的 如何实现这一点?您可以返回一个新向量(),但更好的解决方案是远离已过时多年的向量。除非需要并发功能,否则可以使用ArrayList 您添加了从第三方服务接收向量的信息。不要忘

我有一个返回向量的函数,如果出现错误,我想返回一个空向量,可以使用Collections.isEmpty通过调用方法进行检查。但是我找不到这样做的方法,因为Collections为List、Maps等提供Collections.emptyList函数,但不为Vector提供函数,我必须通过函数返回null,这是我想要避免的


如何实现这一点?

您可以返回一个
新向量()
,但更好的解决方案是远离已过时多年的
向量。除非需要并发功能,否则可以使用
ArrayList

您添加了从第三方服务接收
向量的信息。不要忘记,
向量
是一个
列表
,因此您可以使用如下内容:

public List<X> getData() {
  try {
    Vector<X> v = getDataFromService();
    return v;
  } catch (ServiceException e) {
    return Collections.emptyList();
  }
}
public List getData(){
试一试{
Vector v=getDataFromService();
返回v;
}捕获(服务异常e){
返回集合。emptyList();
}
}
我想返回一个空向量,可以使用 我是空的

是要返回空向量,还是希望Collections.isEmpty()在传递空向量时返回true?

一般来说,返回一个空向量将不表示错误,但结果是空的-应该考虑在错误上抛出(检查)异常,这将使方法和调用方之间的合同更加清晰。如果在以后的某个日期,您希望该方法能够返回一个空向量来指示一个空结果(并且没有错误),那么您将能够在不更改所有调用代码的情况下返回它。

您不能使用它自己的方法吗

 return vector.isEmpty() ? new Vector<?>() : vector;
返回向量.isEmpty()?新向量():向量;

返回新向量()?或者如果您有一个对象,则返回vector.clear();CollectionUtils.isEmpty是否支持此功能?是否有理由需要返回
向量
。返回类型最好是任意的
列表
类型。有了这个更改,
Collections.emptyList()
就完美了。否则,
new Vector()
就可以了。
CollectionUtils.isEmpty(null)
也会返回true,所以无论哪种方式都无所谓。我依赖于Vector调用只返回Vector的旧版服务。new Vector()似乎是正确的。@adimoh服务返回
向量
这一事实并不妨碍您使用
列表
。如果服务需要输入
向量
,则情况会有所不同。