我听到过这样的论点,即您应该使用可用的最通用的接口,以免与该接口的特定实现联系在一起。此逻辑是否适用于java.util.Collection之类的接口?
我宁愿看到如下内容:
List<Foo> getFoos()
要么
Set<Foo> getFoos()
代替
Collection<Foo> getFoos()
在最后一种情况下,我不知道我要处理哪种数据集,而在前两种情况下,我可以对顺序和唯一性做出一些假设。除了作为集合和列表的逻辑父代之外,java.util.Collection是否有用?
如果在进行代码审查时遇到使用Collection的代码,您将如何确定其用法是否合理,以及对使用更特定的界面替换它有何建议?
Collection<List<?>>
?谈谈编码恐怖!