Descobrir qual o tipo do Objeto

Pessoal tem como eu descobrir e que tipo é um objeto?

Estou querendo fazer algo do tipo assim:

[code]public class Teste{
.
.
.

new Tela(this);
}

public class Tela {
public Tela(Object obj);

}[/code]

Daí eu queria saber que qual objeto é obj tem como?

instanceof

if (o instanceof Teste)

instanceof não resolve???

[]'s

Não pq pode não ser a Teste pode ser qualquer outra

object.getClass(); ?!

The following example uses a Class object to print the class name of an object:

     void printClassName(Object obj) {
         System.out.println("The class of " + obj +
                            " is " + obj.getClass().getName());
     }
1 curtida

Daí eu posso acessar um determinado método dessa classe?

como pode ser qq outra??
pode ser uma Collection??
pode uma Thread??
pode ser null???
vc não tem controle sobre o tipo de objeto que vc supoe que é uma tela, e vai chegar para seu metodo??? :shock:

[]'s

Dá para vc acessar vi reflection:

Method m = o.getClass().getMethod("nome",new Class[]{//tipos});
m.invoke(o,new Object[]{//valores})

O que estou querndo fazer é o seguinte

Tenho uma tela de consulta que é chamada por várias outras telas, ela traz os dados numa jTable, quero clicar em determinado intem da tabela e retornar os valores para a tela que a chamou só q são várias telas que poderá chamala, para uma tela eu resolvi passando um objeto da que chama mas como devo fazer já q há a possibilidade várias chamar

[quote=jprogrammer]Dá para vc acessar vi reflection:

Method m = o.getClass().getMethod("nome",new Class[]{//tipos});
m.invoke(o,new Object[]{//valores})

[/quote]

puts isso é cabuloso pode explicar melhor o q é “nome” e “valores” e “tipos”? :frowning:

Isso tá mal explicado mesmo…
// tipos são objetos do tipo class informando os tipos dos parametros.
// valores são valores informados para os metodos

Procure sobre reflection.

[quote=rocha]

puts isso é cabuloso pode explicar melhor o q é “nome” e “valores” e “tipos”? :frowning: [/quote]

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Class.html

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/reflect/Method.html

Se isso não ajudar, desista.

Como voce chama a tabela de consulta de qualquer lugar voce poderia coloca-la em uma JDialog.

Bom nessa JDialog voce teria um metodo que retornaria o valor selecionado na JTable. e um OK que fecharia a janela.

Depois na sua classe apenas invoque o metodo.

Deu pra entender? :roll:

Nivel abstracao 1000000²³

public class ConsultaTable extends JDialog{
    public ConsultaTable(){
        super(null,true);
    }

    ....

    public String[] getSelectedLinha(){
       return tbl.getValoresLinhaSelecionada();
    }
public class CadastroPessoa extends JInternalFrame{
    public CadastroPessoa(){
    }

    ...

    public String[] getDadoSelecionado(){
       ConsultaTable ct = new ConsultaTable();
       return ct.getSelectedLinha();
    }

ficou mais claro? :smiley:

Cara com isso será por volta de mais umas 9999999²³ perguntas…rsrsr to brincando entendi sim só q uma JDialog não server para mim pois eu quero isso dentor do meu JDesktop.

Apenas sugeri o JDialog por ser modal,
mas… se eu nao estou enganado, isso não é um problema né?

alguns topicos atras você descobriu como fazer um JInternalFrame modal

boa sorte!
:thumbup:

rocha, temos um próprio tutorial de reflection do guj q pode te ajudar!
http://www.guj.com.br/java.artigo.10.1.guj

[quote=gui]Apenas sugeri o JDialog por ser modal,
mas… se eu nao estou enganado, isso não é um problema né?

alguns topicos atras você descobriu como fazer um JInternalFrame modal

boa sorte!
:thumbup:[/quote]

É gui vc tem razão só tenho um problema com esse InternalFrames Modais é que os ComboBox não funcionam eles não mostram as opões pois o Modal não deixa… por enquanto não consegui descobrir como resolver isso…

Mas Valeu a força…

[quote=Ironlynx]rocha, temos um próprio tutorial de reflection do guj q pode te ajudar!
http://www.guj.com.br/java.artigo.10.1.guj[/quote]

Valeu IronIynx vou dar uma estudada apesar de eu ter conseguindo resolver este problema de outra forma.

Eu fiz assim tenho dois construtores diferentes uma para qdo vem da tela de cadastro que será fixa neste recebo uma referencia desta classe.

No outro todas as minhas telas terão o mesmo obj que é uma caixa de texto e um botão

o q faço recebo uma referencia deste objeto q ser comum para todos e seto os valores nele… Deu certo… :lol:

Valeu mais uma vez ajuda… :wink: