<分区>
我有很多实现接口(interface)的类。
我可以像这样定义堆栈、队列和 ArrayList
吗?
ArrayList<Class<? extends BaseClass>>
存储对象 ?在我的场景中,每个对象将来自 Stack 或 ArrayList 中的不同类? 这种实现的优缺点是什么? 我是 Java 的新手,因此是这个问题的新手。对此还有其他建议吗?
<分区>
我有很多实现接口(interface)的类。
我可以像这样定义堆栈、队列和 ArrayList
吗?
ArrayList<Class<? extends BaseClass>>
存储对象 ?在我的场景中,每个对象将来自 Stack 或 ArrayList 中的不同类? 这种实现的优缺点是什么? 我是 Java 的新手,因此是这个问题的新手。对此还有其他建议吗?
最佳答案
是的,你可以。
优点是您可以存储各种类型的对象并确保它们实现相同的契约,因此可以多态地处理它们。如果不使用 Object
,您将无法将它们存储在单个结构中;假设不存在其他共性。
缺点是如果不进行额外检查,您将无法知道它们的类型,因此仅限于该接口(interface)提供的功能。然后你会坚持检查实例类型,然后进行强制转换,以便使用不常见的功能。
关于java - 我可以定义扩展接口(interface)的 ArrayLists 和其他数据结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38136411/