Какой самый простой способ сделать это в Java?

Во многих языках есть возможность проверить, принадлежит ли объект определенному типу (включая родительские подклассы), реализованный с помощью 'is' и используемый следующим образом:

if (obj is MyType)

Или немного более утомительно, вы можете на других языках проверить, используя ключевое слово as, чтобы выполнить мягкое приведение типов и посмотреть, является ли результат нулевым.

Я не использовал Java в течение многих лет, и я снова набираю обороты, но, конечно же, у Java есть способ легко сделать это, не углубляясь в API Reflection?

Заранее благодарим за ответы. Я искал и здесь, и в других местах, но задействованные ключевые слова настолько общие, что, хотя я уверен, что у этого есть простой ответ, поискать в Google для этого сложно.

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

Ответы 3

Ответ принят как подходящий
if (objectReference instanceof type){
    //Your code goes here
}

Подробнее здесь.

о да, это именно то, что я искал. Спасибо.

Jon Galloway 26.10.2008 06:21

obj instanceof TargetType возвращает истину на тот случай, если TargetType находится в иерархии типов, содержащей obj.

См. Учебник Sun

Вы можете использовать instanceof только с литералом класса:

Class type = String.class;

if (myObj instanceof String) // will compile

if (myObj instanceof type) //will not compile

Альтернативой является использование метода Class.isInstance.

if (type.isInstance(myObj)) // will compile

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

Переменная «a» имеет ссылочный тип, а «A» — это пользовательский класс. Если значение «a» равно нулю, почему «a is A» дает значение true?
Подсказка типа super().__init__ вызов с конкретными типами
Как лучше всего передать null требуемым реквизитам в компоненте в vuejs?
Почему проверка типа vue.js для реквизита не удалась, даже если я использую «Object as PropType<GeographicCoordinate | null>»?
Возможная проблема с проверкой типов TypeScript
Kotlin Reflection проверяет, является ли свойство класса ArrayList определенного типа
Проблема с типом Python — Pylance — не удается получить доступ к члену «...» для типа «...» Член «...» неизвестен
Проверка типа перед циклом игнорируется внутри цикла?
Как вообще заменить каждое неопределенное значение в древовидной структуре объекта нулевым значением?
Почему Idris 2 не может разрешить ограничения с помощью композиции функций в этом тривиальном примере?