Java接口集合
我正在编写一个小API来处理具有特定“特征”的对象在本例中,它们都有一个时间间隔和一些其他数据位,因此我编写了一个带有一些getter和setter的接口时间间隔 现在,大多数API方法都处理一组或一组对象。在内部,这些方法使用Java Collections框架(特别是HashMap/TreeMap)。因此,这些API方法如下所示:Java接口集合,java,collections,Java,Collections,我正在编写一个小API来处理具有特定“特征”的对象在本例中,它们都有一个时间间隔和一些其他数据位,因此我编写了一个带有一些getter和setter的接口时间间隔 现在,大多数API方法都处理一组或一组对象。在内部,这些方法使用Java Collections框架(特别是HashMap/TreeMap)。因此,这些API方法如下所示: getSomeDataAboutIntervals(列出intervalObjects) 两个问题: a) 如果您将您的列表声明为List1),这应该是List吗
getSomeDataAboutIntervals(列出intervalObjects)代码>
两个问题:
a) 如果您将您的列表声明为List1),这应该是List吗?延长时间间隔。由于Java的多态性,它实际上可能没有什么不同,但它更健壮,风格更好
2) 是a)否。列表
应该改为列出intervalObjects吗
只有当您想传入列表时,才可以这样做。注意:您可以将TimeInterval
的子类的实例放入列表中。请记住,列表的类型与列表中的类型不同
如果你做了List1)是的
方法参数应尽可能通用<代码>列表我在帖子中为您添加了代码块。请查看文档,了解下一次如何自己做。谢谢,在我编辑之前您就已经到了:)它不太一般;限制性更强。如果您有接口A
和实现A
的类B
、C
和D
,则在列表中可以将B
、C
或D
的实例存储在同一列表中。例如,使用List
,您只能存储C
的实例,而不能存储B
或D
。创建一个方法getSomeDataAboutIntervals没有任何意义(List@Paul从方法调用方的角度来看,它更一般。他们可以给它一个列表
或列表
或列表
。如果方法采用列表
,并且他们有一个列表
,他们将不得不进行扭曲以使它们协同工作。我不理解你关于实例的观点ceof
。如果TimeInterval
未公开方法中所需的功能,则不应使用通配符绑定。
List<List> mylist= new ArrayList<List>();
mylist.add(new ArrayList());
<T extends MyObject> List<T> filterMyObjects(List<T>)