Как получить имя класса из интерфейса с несколькими реализациями в java

У меня следующий интерфейс

Interface fooBar extends Foo {}

несколько классов, реализующих их

class A implements fooBar {}
class B implements fooBar {}
class C implements fooBar {}

Теперь в одном из способов у меня есть следующие

Foo dummy = someMethod.getIt();

Я хочу знать, что это за манекен; это A, B, C Я попробовал dummy.getClass().getSimpleName(), и он не дал ни одного из трех, а случайную строку "AndFunction"

Я могу выполнить проверку instanceOf для каждого из A, B, C. Это становится некрасивым, когда у меня появляется больше реализаций.

P.S. Я упростил код, который пытаюсь отладить с помощью отладчика в IntelliJ. Это довольно большое устаревшее приложение с Spring beans, созданным и внедренным во время выполнения.

"он не дал ни одного из трех" - Что это дало вам?

Jacob G. 12.11.2018 19:42

Вместо instanceof вы должны использовать полиморфизм, однако это сложно, если вы не можете реорганизовать код.

Peter Lawrey 12.11.2018 19:42

Это имя могло быть сгенерировано автоматически (если someMethod.getIt() вернул прокси). Вы можете изучить интерфейсы и / или суперкласс dummy.getClass(), чтобы понять, что это такое на самом деле.

Andrew Tobilko 12.11.2018 20:01

@ Андрей Тобилко как?

brain storm 12.11.2018 20:19

@brainstorm отладить содержимое dummy.getClass()

Andrew Tobilko 12.11.2018 22:07
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
118
0

Другие вопросы по теме