Wan*_*rer 3 java interface arraylist
我有很多实现接口的类.我可以将Stacks,Queues和ArrayList
s定义为这样吗?
ArrayList<Class<? extends BaseClass>>
Run Code Online (Sandbox Code Playgroud)
存储对象?在我的场景中,每个对象将来自Stack或ArrayList中的另一个类?这种实施的利弊是什么?我是Java新手,因此这个问题.对此的任何替代建议?
是的你可以.
优点是您可以存储各种类型的对象,并确保它们实现相同的合同,因此可以多态地处理它们.如果不使用,您将无法将它们存储在单个结构中Object
; 假设不存在其他共性.
缺点是,如果没有额外的检查,您将不知道它们的类型,因此仅限于该接口提供的功能.然后,我会坚持检查实例类型,然后进行强制转换,以便使用不常见的功能.