【发布时间】:2018-01-13 19:50:51
【问题描述】:
我在我创建的类中有一个方法。该类的每个对象都具有一个 Object 数组的属性,并且该方法返回该数组。但是,当数组长度为 1 时,我有没有办法只从数组中返回单个对象?
【问题讨论】:
-
请向我们展示您目前编写的代码
我在我创建的类中有一个方法。该类的每个对象都具有一个 Object 数组的属性,并且该方法返回该数组。但是,当数组长度为 1 时,我有没有办法只从数组中返回单个对象?
【问题讨论】:
你不能。如果一个方法被声明为返回Object[],你就不能返回Object。类型不兼容。
但您也不想这样做。从返回集合的方法返回 null 是一种常见的反模式。最好返回一个空集合,这样调用者就不必检查null。他们可以只遍历空集合。无论如何,代码几乎总是会做正确的事情。
这个简单的循环...
for (int n: getNumbers()) {
performCalculation(n);
}
...变成这个不雅的烂摊子:
int[] numbers = getNumbers();
if (numbers != null) {
for (int n: numbers) {
performCalculation(n);
}
}
同样,即使有可能,对单个元素进行特殊封装也会使调用者的工作更加复杂。他们必须检查是否有一个集合或单个对象和分支。
【讨论】: