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

Wan*_*rer 3 java interface arraylist

我有很多实现接口的类.我可以将Stacks,Queues和ArrayLists定义为这样吗?

ArrayList<Class<? extends BaseClass>> 
Run Code Online (Sandbox Code Playgroud)

存储对象?在我的场景中,每个对象将来自Stack或ArrayList中的另一个类?这种实施的利弊是什么?我是Java新手,因此这个问题.对此的任何替代建议?

Chi*_*ils 6

是的你可以.

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

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