Java迭代器在一个参数化类型的空集合上。
- 论坛
- Java迭代器在一个参数化类型的空集合上。
9 浏览
Java迭代器在一个参数化类型的空集合上。
在Java中,我需要从我的方法中返回一个迭代器。我的数据来自另一个对象,通常可以给我一个迭代器,所以我可以直接返回它,但在某些情况下,底层数据为null。为了保持一致性,我希望在这种情况下返回一个"空"迭代器,这样我的调用者就不必测试null。
我想写这样的代码:
public Iteratoriterator() { if (underlyingData != null) { return underlyingData.iterator(); // 正常工作 } else { return Collections.emptyList().iterator(); // 编译错误 } }
但是Java编译器抱怨返回的是Iterator
而不是Iterator
。强制转换(Iterator
也不起作用。