我有一个Shape
超类和一个NestedShape
子类。子类有一个嵌套在其中的NestedShape
ArrayList (' ShapesList
') 。Shapes
我需要为NestedShape
. 当给定一个Shape
对象时,此方法应检查该形状是否存在于NestedShape
'sShapeList
中。我现在的实现非常简单:只需调用 ArrayList.contains()
方法ShapesList
。
但是,我需要实现的“包含”方法还必须检查 中的任何NestedShape
形状ShapesList
,该形状ShapeList
也不包含正在搜索的形状。对我来说这样做的明显方法是使用instanceof
检查其中Shape
的每个ShapeList
是否都是NestedShape
. 然后,我想如果它是一个NestedShape
. 但是,我不确定这是否是一种好方法——我听说使用 ofinstanceof
不受欢迎(另外,我不确定我使用递归的想法是否可行)。
任何人都可以提出更好的方法来解决这个问题吗?
谢谢 :)