У меня есть четыре черты A, B, C и D в иерархии типичных алмазных проблем. Я реализовал метод вычисления в признаке A, который проверяет экземпляр callerObject, выполняет некоторый расчет и возвращает объект типа объекта A. вычислить метод успешно в состоянии проверить instanceType из callerObject когда callerObject принадлежит черта B или C, но не работает для объекта признака D, и я получаю следующее исключение класса произнесения:Scala diamond prob, найти имя класса из экземпляра класса D
java.lang.ClassCastException: packageName.B$$anon$1 cannot be cast to packageName.D
Можете ли вы предложить способ вперед, как я могу проверить Тип объекта с признака D по методу A.
PS: Я новичок в Scala.
Показать код. – Dima
def calculate (other: A): A = { этот матч { case _: B => // Some Function call and return B type obj case _: C => // Some Function call and return C type obj case _: D => // Некоторый вызов функции и возврат D тип obj } } – user1809095
Нет, я не могу прочитать это. Добавьте его в исходный вопрос, правильно отформатируйте, amd show, где вы получите ошибку. Добавьте определения классов. Взгляните сюда на руководство: http: //stackoverflow.com/help/mcve – Dima