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