[Reflection] É possível pegar o corpo de um método por reflection?

6 respostas
InsaneChess

Pessoal,
É possível eu pegar o corpo de um método via reflection?

(Não digo a Assinatura, nome, ou excessões…e sim o “Conteúdo” do método)

Abraços!!!

6 Respostas

maior_abandonado

eu nunca vi um exemplo disso sendo feito… acredito que não… por curiosidade, por que você precisa disso?

Ataxexe

Por reflexão pura e simples não, mas por manipulação de bytecodes (usando ASM, javassist, etc.) dá pra alterar comportamento de métodos, então acho que é possível obter o que o método faz (mas não em código java e, sim, em instruções para a JVM).

Apesar de não ser nada trivial (mesmo considerando reflection algo básico).

InsaneChess

Own xD
Blz então hehe.

Na verdade, eu perguntei apenas por “Curiosidade”…

Mais já que não da, não vejo motivo para me matar em tentar conversar com a JVM apenas por curiosidade hUhsauhUhsa

Valew, abraços!!!

G

Ataxexe:
Por reflexão pura e simples não, mas por manipulação de bytecodes (usando ASM, javassist, etc.) dá pra alterar comportamento de métodos, então acho que é possível obter o que o método faz (mas não em código java e, sim, em instruções para a JVM).

Apesar de não ser nada trivial (mesmo considerando reflection algo básico).

apesar q byteCodeToJava é só uma questão de tradução

T

Boa Tarde amigo.

Olha pelo que andei estudando de Reflection e possível pegar todo o Objeto todo, ja vi exemplo na rede de pessoas fazendo isso, web-service usando Reflection.
Por que sem saber o que vinha ou que iam, usavam reflection

Acredito que seja mais ou menos isso que você quer certo?

E

O corpo do método é destruído quando se faz a compilação, portanto o que você pediu não faz muito sentido.

Entretanto, com um pouco de ginástica (pegando os atributos de depuração que existem nos arquivos .class) e o código-fonte, é possível, para as IDEs, encontrar o ponto do programa correspondente ao método que você está procurando.

Criado 14 de março de 2012
Ultima resposta 14 de mar. de 2012
Respostas 6
Participantes 6