Согласно Class.getSuperclass() documentation:Почему Class.getSuperclass() иногда возвращает Object.class?
Возвращает класс, представляющий суперкласс субъекта (класса, интерфейса, примитивный типа или пустота), представленный этот класс. Если этот класс представляет либо класс Object, интерфейс, примитивный тип , либо void, то возвращается null.
Но я иногда видя Object.class
возвращается (с использованием jdk1.7.0_45) - так я приходится проверять его отдельно:
final Class<?> superclass = modelClass.getSuperclass();
if ((superclass != null) && (Object.class != superclass)) {
// Do stuff with superclasses other than Object.
}
Является ли это Java ошибка? Есть ли лучший способ проверить, superclass
является Object
?
В вашем сценарии все является «экземпляром» объекта «Объект». Что вы пытаетесь достичь? –
Я не буду вдаваться в подробности, но отражение используется для прокрутки всех методов класса и рекурсивно всех его предков, кроме Object. –
Если вы не входите в детали, я не уверен, как я могу помочь. Если я знаю ваши намерения, возможно, есть другой способ сделать то, что вы пытаетесь сделать. –