java - 我可以定义扩展接口(interface)的 ArrayLists 和其他数据结构吗?

标签 java arraylist interface

<分区>

我有很多实现接口(interface)的类。 我可以像这样定义堆栈、队列和 ArrayList 吗?

ArrayList<Class<? extends BaseClass>> 

存储对象 ?在我的场景中,每个对象将来自 Stack 或 ArrayList 中的不同类? 这种实现的优缺点是什么? 我是 Java 的新手,因此是这个问题的新手。对此还有其他建议吗?

最佳答案

是的,你可以。

优点是您可以存储各种类型的对象并确保它们实现相同的契约,因此可以多态地处理它们。如果不使用 Object,您将无法将它们存储在单个结构中;假设不存在其他共性。

缺点是如果不进行额外检查,您将无法知道它们的类型,因此仅限于该接口(interface)提供的功能。然后你会坚持检查实例类型,然后进行强制转换,以便使用不常见的功能。

关于java - 我可以定义扩展接口(interface)的 ArrayLists 和其他数据结构吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38136411/

相关文章:

java - 如何根据您在上一个 Activity 中所做的操作在另一个 Activity 上显示对话框

java - 在刷新 MView 时从 Java 访问 (Oracle) 物化 View

java - 数组列表。在一个索引中连接字符串值

java - 将每个数组字符串与 int 进行比较

Java:返回类型与实现接口(interface)的类不兼容

Java CompareTo 方法指出我无法将 int 转换为 boolean,即使两者都不使用

java - Apache Camel : Quotes will break the URI

java - 如何获取.ear文件在应用服务器中的路径?

java - JAVA中从ArrayList随机生成字符串而不进行替换

haskell - Haskell 中的类 OO 接口(interface)实现