我有一個Shape
超類和NestedShape
子類。 NestedShape
子類具有嵌套在其中的Shapes
的ArrayList('ShapesList
')。我需要爲NestedShape
實施「包含」方法。此方法在給出Shape
對象時,應檢查NestedShape
的ShapeList
中是否存在形狀。我目前的實現非常簡單:只需在ShapesList
上調用ArrayList .contains()
方法即可。Java - 替代instanceof?
但是,我需要實現的'contains'方法還必須檢查ShapesList
中的任何NestedShape
,該形狀的ShapeList
也不包含正在搜索的形狀。這樣做的最明顯的方法是使用instanceof
來檢查ShapeList
中的每個Shape
是否爲NestedShape
。然後,如果它是NestedShape
,我想我會遞歸地調用它的'contains'方法。但是,我不確定這是否是一個好的方法 - 我聽說使用instanceof
令人不悅(同時,我不確定我的想法是否使用遞歸甚至可以)。
任何人都可以提出一個更好的方法來解決這個問題?
謝謝:)
可能是兩個單獨的列表?也許一些並行數組(列表)。 – Nikki
代碼使事情變得更加清晰。請張貼一些關於你想要做的事情的片段。 – mtk