Как говорили другие, instanceof
не обладает такой же функциональностью, как equals
.
С другой стороны, при решении этой проблемы в коде использование Visitor -pattern является чистым (хотя и не наименьшим в строках кода) решением. Приятным преимуществом является то, что после настройки интерфейса посетителя для набора классов его можно повторно использовать во всех других местах, где требуется обрабатывать все / некоторые / одно различные расширения класса.