在Java中使用Iterable<T>vs.有哪些注意事项Collection<T>?
例如,考虑实现一种主要涉及包含Foos的集合以及一些关联的元数据的类型。这种类型的构造函数允许一次性初始化对象列表。(可以稍后设置元数据。)此构造函数应接受哪种类型?Iterable<Foo>或Collection<Foo>?
此决定有哪些考虑因素?
通过库类型,如下面列出的模式集合ArrayList(这可以从任何被初始化Collection,但不是一个Iterable),会导致我使用Collection<Foo>。
但是为什么不接受Iterable<Foo>,因为这足以满足初始化需求?为什么Collection消费者要求的功能等级()比严格要求的功能等级(Iterable)高?