Проверьте, является ли суперкласс java.lang.Object - PullRequest
4 голосов
/ 01 июня 2010

Я пользуюсь

if (clazz.getSuperclass().getName() == "java.lang.Object")

Есть ли лучший способ?

Ответы [ 2 ]

9 голосов
/ 01 июня 2010

if ( clazz.getSuperclass( ) == Object.class )

В исходной реализации есть 2 проблемы:

  1. getSuperclass может вернуть null, и вы получите NPE при вызове getName
  2. Вы используете равенство идентичности со строкой (== вместо equals). Как ни странно, в этом случае это может сработать, поскольку строка "java.lang.Object", вероятно, интернализована.
3 голосов
/ 01 июня 2010

Как насчет

if (clazz.getSuperclass().equals(java.lang.Object.class))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...