【发布时间】:2010-11-12 16:29:33
【问题描述】:
在 Java 中使用 Iterable<T> 与 Collection<T> 有哪些注意事项?
例如,考虑实现一个主要关注包含Foos 集合和一些相关元数据的类型。这种类型的构造函数允许一次性初始化对象列表。 (元数据可以稍后设置。)这个构造函数应该接受什么类型? Iterable<Foo>,还是Collection<Foo>?
做出此决定的考虑因素是什么?
遵循ArrayList(可以从任何Collection,但不是Iterable)等库类型规定的模式将引导我使用Collection<Foo>。
但是为什么不接受Iterable<Foo>,因为这足以满足初始化需求?为什么要求消费者提供更高级别的功能 (Collection),而不是严格必要的 (Iterable)?
【问题讨论】:
-
有一篇很棒的文章 [这里][1] 关于这个。 [1]:artima.com/weblogs/viewpost.jsp?thread=119193
标签: java collections