Declara o Imprime como estático e chama o método normalmente.
ViniGodoy
É 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:
publicclassteste{publicstaticvoidmain(Stringargs[]){try{Objectobj=newteste();//Vamos chamar o imprime daquele obj lá em cima.//Você só deve passar null se o método for estático.this.getClass().getMethod("imprime",null).invoke(obj,null);}catch(Exceptionex){ex.printStackTrace();}}publicvoidimprime(){System.out.println("Deu Certo!!!!");}}
Naruffy
ViniGodoy:
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
ricoldi
Naruffy:
ViniGodoy:
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
ViniGodoy
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.
Naruffy
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
71C4700
Não querendo resucitar, mas
Tem como com Reflection saber qual metodo, é o retorno de certo atributo?
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.