【发布时间】:2012-05-21 19:19:37
【问题描述】:
我只是想知道您对将所有 Collections 函数输出更改为 Iterable 类型的意见。
在我看来,这可能是当今 Java 中最常见的代码,每个人在 99% 的时间里总是返回一个 List/Set/Map,但不应该是返回类似
的标准 public final Iterable<String> myMethod() {
return new Iterable<String>() {
@Override
public Iterator<String> iterator() {return myVar.getColl();}
};
}
这很糟糕吗?你知道所有的 DAO 类,这些东西就像
Iterable<String> getName(){}
Iterable<Integer> getNums(){}
Iterable<String> getStuff(){}
而不是
List<String> getName(){}
List<Integer> getNums(){}
Set<String> getStuff(){}
毕竟,99% 的时间你都会在 for 循环中使用它...
你觉得怎么样?
【问题讨论】:
-
使用集合,您通常还需要测试项目是否存在 - 这需要实际集合。
-
你说得对,把Set放在那里很愚蠢,特别是没有顺序的HashSet。
标签: java list collections iterator iterable