| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:02:53
|
Naruffy
JavaEvangelist
![[Avatar]](/images/avatar/d74dc3f2679eee2fa69ddb9597b61258.jpg)
Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline
|
Olá a todos
Preciso executar um método apartir do seu nome salvo em uma String
li alguns tópicos aqui no GUJ e achei umas coisas sobre Reflection, dei um pesquisada e cheguei ao seguinto código de teste
porém não consigo fazer funcionar de jeito nenhuma
Estou fazendo oque de errado?
Vlw
This message was edited 1 time. Last update was at 21/07/2008 10:07:55
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:08:34
|
Naruffy
JavaEvangelist
![[Avatar]](/images/avatar/d74dc3f2679eee2fa69ddb9597b61258.jpg)
Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline
|
Achei a respota dois minutos depois
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:09:02
|
Gustavo Yu
Thread.start()
![[Avatar]](/images/avatar/cdca41db5ada4bf3e8e608a495066165.jpg)
Membro desde: 26/05/2008 20:13:38
Mensagens: 41
Offline
|
Declara o Imprime como estático e chama o método normalmente.
|
[]'s
Gustavo Yu |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:17:22
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
É bom ler o javadoc dos métodos antes de usa-los. O primeiro parämetro do método invoke diz ao java "imprime" de que objeto deve ser chamado. No caso, seu métod imprime não é estático, então, você precisa de um objeto no parâmetro:
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:29:21
|
Naruffy
JavaEvangelist
![[Avatar]](/images/avatar/d74dc3f2679eee2fa69ddb9597b61258.jpg)
Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline
|
ViniGodoy wrote: No caso, seu métod imprime não é estático, então, você precisa de um objeto no parâmetro:
Mas eu necessáriamente tenho que criar uma nova instância do meu objeto?? não posso possar a já instanciada, como eu fiz usando o this?
Obrigado
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:31:25
|
ricoldi
JavaEvangelist
![[Avatar]](/images/avatar/f65c00c041bab77ab44874be15c53276.png)
Membro desde: 04/11/2007 19:11:40
Mensagens: 414
Localização: Ribeirão Preto - SP
Offline
|
Naruffy wrote:
ViniGodoy wrote: No caso, seu métod imprime não é estático, então, você precisa de um objeto no parâmetro:
Mas eu necessáriamente tenho que criar uma nova instância do meu objeto?? não posso possar a já instanciada, como eu fiz usando o this?
Obrigado
Pode usar o this tranquilamente sim! o exemplo do ViniGodoy é que se o metodo é estatico você não precisa passar o objeto, por motivos obvios que metodos de classe precisam de um objeto. e tambem não é possivel passar null se for executar o metodo em outra classe que não a que possue o metodo, resumindo ali onde você passa "null" ou "this" vai o objeto que possui o metodo a ser executado, manja?
Att
Ricoldi
This message was edited 2 times. Last update was at 21/07/2008 10:34:23
|
*Todo post expressa minha opinião e não uma verdade inquestionável* |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:35:28
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
Sim, eu só quis reforçar que é necessário passar alguma instância. Aliás, como vc está usando this num método estático? Isso que vc postou nem é possível! :o O Java vai dar o erro "this cannot be used in a static context". Mas claro, se vc tiver um método não estático, poderá usar o this. Não é muito comum, já que geralmente usamos reflexão sobre um outro objeto, mas é possível.
This message was edited 1 time. Last update was at 21/07/2008 10:36:01
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2008 10:39:23
|
Naruffy
JavaEvangelist
![[Avatar]](/images/avatar/d74dc3f2679eee2fa69ddb9597b61258.jpg)
Membro desde: 28/03/2008 18:54:49
Mensagens: 324
Offline
|
ViniGodoy wrote:
Aliás, como vc está usando this num método estático? Isso que vc postou nem é possível! :o
O Java vai dar o erro "this cannot be used in a static context".
Não sabia dessa de não poder usar this em método estático, este código eu fiz só um exemplo bobo que nem testei,
mas na minha classe original deu certo, muito obrigado a todos
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 25/07/2008 01:28:24
|
71C4700
JavaEvangelist
![[Avatar]](/images/avatar/72824049a9d187c8848e6ba146b02ed3.jpg)
Membro desde: 25/03/2008 08:18:35
Mensagens: 364
Localização: Por ai...
Offline
|
Não querendo resucitar, mas
Tem como com Reflection saber qual metodo, é o retorno de certo atributo?
Ajuda ??
|
[]This is Job!!!°°°°° |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/07/2008 00:31:42
|
71C4700
JavaEvangelist
![[Avatar]](/images/avatar/72824049a9d187c8848e6ba146b02ed3.jpg)
Membro desde: 25/03/2008 08:18:35
Mensagens: 364
Localização: Por ai...
Offline
|
Alguem ?
|
[]This is Job!!!°°°°° |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 26/07/2008 09:36:26
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20581
Localização: Curitiba/PR
Offline
|
71C4700 wrote:Alguem ?
Não fique "upando" tópicos. Ao invés de fazer isso, reformule a sua pergunta. Eu mesmo não entendi. Como assim "qual método é retorno"? Um método não é retorno. Ou você está falando do getter? Se for, não tem. A reflexão não consegue olhar para a implementação do método. Seria necessário marcar o atributo ou o método com uma anotação que já diga isso para as classes de reflexão, ou usar um padrão como o JavaBeans onde vc garante que os gets e sets correspondem a atributos específicos. Aliás, se vc já abriu um tópico para isso: http://www.guj.com.br/posts/list/97979.java Por que postou novamente a dúvida aqui? Por lá o pessoal já até te deu as respostas!
This message was edited 5 times. Last update was at 26/07/2008 10:19:03
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
|
|