Você está aqui: Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como exibir os nomes de todas as superclasses de uma determinada classe usando introspecção em JavaQuantidade de visualizações: 8142 vezes |
|
Nesta dica veremos como tirar proveito dos métodos getClass(), getName() e getSuperclass() da classe Class da linguagem Java para exibirmos todas as super classes de um determinada classe, até chegarmos à super classe mais alta na hierarquia, ou seja, a classe Object. Note como usamos um objeto da classe Stack para criarmos uma estrutura de dados do tipo pilha que nos permite obter os nomes das super classes e depois exibir os mesmos na ordem inversa. Veja o código completo para o exemplo: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package arquivodecodigos;
import java.util.Stack;
import javax.swing.*;
public class Estudos{
// vamos precisar de uma pilha aqui
static Stack<String> pilha = new Stack();
public static void main(String args[]){
// Exibe todas as superclasses de JPanel
JPanel panel = new JPanel();
obterSuperclasses(panel);
// agora vamos exibir os resultados na ordem
// contrária que eles foram obtidos
int cont = 0;
while(pilha.size() > 0){
// insere espaços antes
String ident = "";
for(int i = 0; i < cont; i++){
ident = ident + " ";
}
System.out.println(ident + pilha.pop());
cont++;
}
System.exit(0);
}
static void obterSuperclasses(Object obj){
// vamos adicionar este valor na pilha
pilha.push(obj.getClass().getName());
Class cls = obj.getClass();
Class superclass = cls.getSuperclass();
while(superclass != null){
String className = superclass.getName();
// vamos adicionar este valor na pilha
pilha.push(className);
cls = superclass;
superclass = cls.getSuperclass();
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado:
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
|
|
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
|
JavaScript - Como testar se uma string contém uma determinada substring em JavaScript usando a função includes() Java - Programação Orientada a Objetos em Java - Como usar o modificador static em suas aplicações Java |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






