ClassCastException при вызове метода getClass () для объекта - PullRequest
2 голосов
/ 27 сентября 2019

Я получаю ClassCastException при вызове метода getClass () для десериализованного объекта Avro.Метод instanceOf объекта возвращает false для моего класса, но когда я вывожу объект в класс Object и вызываю getClass () для ссылки на класс Object, я вижу имя моего класса в выходных данных.Не означает ли это, что объект действительно является экземпляром моего класса?Если это так, мне интересно, почему instanceOf возвращает false и почему getClass () вызывает исключение?

Приложение загружается в «горячем» режиме (не уверен, что это как-то связано с этим?)

Код

Object o = record.value();
logger.debug(" {}",o.getClass());
logger.debug(" {}",record.value() instanceof TransactionAggregate);
logger.debug(" {}",record.value().getClass());

Выход

22:32:21.100 DEBUG c.m.o.f.c.consumers.Consumer:  class TransactionAggregate
22:32:21.100 DEBUG c.m.o.f.c.consumers.Consumer:  false
22:32:21.101 ERROR c.m.o.f.c.consumers.Consumer:  Consumer#2 Exception occurred: TransactionAggregate cannot be cast to TransactionAggregate
java.lang.ClassCastException: TransactionAggregate cannot be cast to TransactionAggregate
        at Consumer.run(Consumer.java:109)
        at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:40)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
...