我什么时候应该接受 Java 中的 Iterable<T> 与 Collection<T> 的参数?
在Java中使用迭代<T>
与Collection<T>
有什么注意事项?
例如,考虑实现一个主要关注包含 s 集合和一些关联元数据的类型。此类型的构造函数允许对对象列表进行一次性初始化。(元数据可以稍后设置。此构造函数应接受哪种类型?或?Foo
Iterable<Foo>
Collection<Foo>
此决定的注意事项是什么?
遵循库类型(例如(可以从任何初始化,但不能初始化))将引导我使用。ArrayList
Collection
Iterable
Collection<Foo>
但是为什么不接受,因为这足以满足初始化需求呢?为什么要求消费者提供比严格必要的()更高级别的功能()?Iterable<Foo>
Collection
Iterable