Desejo fazer o seguinte:
criar uma classe chamada “Classe”
Criar uma classe chamada “Atributo”
Criar uma classe chamada “Metodo”
Bom, a classe tem seus atributos e seus métodos.
Mas o que preciso é criar estas classes em tempo de execução.
Por exemplo: Criei “Produto” e criei seus atributos e seus métodos. Como fazer para instanciar um objeto desta classe?
Pretendo usar reflection para acessar seus atributos, mas como fazer seus métodos serem executados?
Alguem me sugeriu “invoke”, mas… como usar? Como fazer. A minha dúvida é como começar, o resto me viro. Se conseguir instanciar um objeto de uma classe criada em runtime, o resto vai ser moleza.
Me ajudem ae…
Quem já trabalhou com Adapter Object Model, isto deve ser moleza. Se tiverem um exemplo pra eu ver, ja basta.
Entendi… Caramba, isto vai ser bem interessante. Valew mesmo. Vou dar uma estudada na documentação…
Sem querer abusar, mas voce tem alguma sugestao de como criar uma classe e instanciar um objeto desta classe usando invoke?
Bom, para criar classes em tempo de execução, você pode usar o Javassist.
Para instanciar um objeto de uma classe, use newInstance caso queira usar o construtor padrão (sem argumentos). Para usar um construtor específico, obtenha-o primeiro com getDeclaredConstructor.
Voce não pode criar um .class do modo que voce quer fazer em tempo de execução.
Voce tem duas opções, trabalhar com o seu AOM sem usar Reflection.
Ou então usar uma bytecode lib para criar o .class dinamicamente e poder usar reflection. Mas esse caminho já é bem mais dificil.
Voce pode usar algo como CGLib, ASM ou Javaassist.