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