Bom dia galera, seguinte:
Em um certo momento da minha aplicação, recebo por parâmetro um Object e preciso ver se esse Object é instância de JFrame ou JDialog. O problema é que se eu tenho, por exemplo:
public class X extends JFrame{
}
e eu mando um objeto dessa classe e faço: if(x instance of JFrame), isso me retorna falso pelo fato de não ser ‘diretamente’ uma JFrame. Na verdade x é instance of X. Como faço para saber se essa classe herda de JFrame ou JDialog?
Obrigado!
Olá Wellington, veja o código abaixo:
import javax.swing.JFrame;
public class Testes {
public static void main(String[] args) {
X x = new X();
if (x instanceof JFrame)
System.out.println("x é instancia de JFrame");
else
System.out.println("x não é instancia de JFrame");
Object x1 = new X();
if (x1 instanceof JFrame)
System.out.println("x1 é instancia de JFrame");
else
System.out.println("x1 não é instancia de JFrame");
Object x2 = new Object();
if (x2 instanceof JFrame)
System.out.println("x2 é instancia de JFrame");
else
System.out.println("x2 não é instancia de JFrame");
}
}
class X extends JFrame{
}
Ele produz a seguinte saída:
x é instancia de JFrame
x1 é instancia de JFrame
x2 não é instancia de JFrame
Viu que tanto a declaração X x = new X() como a Object x1 = new X() retornaram verdade para instância de JFrame?