Secondo il Class.getSuperclass() documentation:Perché Class.getSuperclass() talvolta restituisce Object.class?
restituisce la classe che rappresenta la superclasse di detta entità (classe, interfaccia, tipo primitivo o void) rappresentato da questa classe. Se questa classe rappresenta la classe Object, un'interfaccia, un tipo primitivo o vuoto, viene restituito null.
Ma sto vedendo a volte Object.class
essere restituito (usando jdk1.7.0_45) - quindi sto avendo per controllare separatamente:
final Class<?> superclass = modelClass.getSuperclass();
if ((superclass != null) && (Object.class != superclass)) {
// Do stuff with superclasses other than Object.
}
È questo un bug Java? C'è un modo migliore per verificare se superclass
è un Object
?
Nel tuo scenario, tutto è un 'instanceof' un' Object'. Cosa stai cercando di realizzare? –
Non entrerò nei dettagli, ma la riflessione viene utilizzata per scorrere tutti i metodi di una classe e in modo ricorsivo tutti i suoi antenati ad eccezione dell'oggetto. –
Se non entri nei dettagli, allora non sono sicuro di come possa essere di aiuto. Se conosco il tuo intento, forse c'è un modo diverso di fare ciò che stai cercando di fare. –