Intanceof (como fazer isto so tendo a classe)

bahhhhhhhhh alguem me da um solução mais simples… com melhor performance e menos trabalho… eu preciso do seuginte…

um cidadão me informa uma classe… um objeto Class … e eu tenho que saber se esta classe é instancia de java.awt.Component. … e se implementa uma interface minha GetActionPanelControler… o problema é q a classe não está instanciada… e c eu intancialá eu vou carregar… o que é ruim… pq vai carregar o sistema e talvez eu nem use… pq só vou usar a instancia se ela passar nos testes… eu conseguir solucionar… mas tó usando um WHILE e um FOR… bahhhh não gostei da minha solução… queria saber se tem algum meio de fazer como o instanceof… vlw

ai segue a minha solução

private static boolean isValidClass(Class classe) { Class[] interfaceClass = classe.getInterfaces(); boolean teste = false; for (int i = 0; i < interfaceClass.length; i++) { if (interfaceClass[i] == GetActionPanelControler.class){ teste = true; break; } } interfaceClass = null; if (teste) teste = false; else return false; while ((!teste) && (!classe.equals(Object.class))) { if (classe.equals(java.awt.Component.class)) teste = true; classe = classe.getSuperclass(); } return teste; }

alguem tem algum mode de fazer??? sem ter que usar… class.newInstance(); ???

Olá Tomas,

Tente usar:

espero que ajude.

Mônica

Mônica… brigado ai pela juda… mas infelizmente assim tb não dá…

meu problema é que eu não tenho instancia do objeto… então não consigo fazer o teste… a não ser pelas classes… e pela classe meu retorno é falso… veja o caso a seguir…

[code]public class Teste {

public static void main(String[] args) {
	System.out.println(javax.swing.JPanel.class.isInstance(java.awt.Component.class));
}

}[/code]

isto retorna falso… mas o JPanel é sub-clase de Component … e se eu tentar fazer sem a classe nem compila

[code]public class Teste {

public static void main(String[] args) {
	System.out.println(javax.swing.JPanel.class.isInstance(java.awt.Component));
}

}[/code]
da erro de compilação…

Alguem mais tem alguma solução??

[quote=“conciani”]Olá Tomas,

Tente usar:

espero que ajude.

Mônica[/quote]

Axi uma solução … UAHuAHuauhauhauh

brigado monica por me mostrar o caminho

[code]public class Teste {

public static void main(String[] args) {
	System.out.println(java.awt.Component.class.isAssignableFrom(EmployeePanelEdit.class));
	System.out.println(GetActionPanelControler.class.isAssignableFrom(EmployeePanelEdit.class));
}

}[/code]

deu true pros 2… isAssignableFrom testa exatamente o que eu queria =]