if (!(o instanceof Solution)) return false; - Разве такая проверка является ли переданный объект объектом класса Solution неверна??!!