Atualização Reflector 1.5.4 API

Caros,

Estou muito interessado na feature de construir um objeto sem passar pelo construtor. Isso porque um dos subprojetos do Banshee tenciona fazer parsing de XML para objeto (de uma maneira bem especial :wink: ) e, pra isso, seria bastante interessante conseguir construir os objetos e ir populando com os dados que a engine for achando no XML. Só que legal mesmo seria se a engine conseguisse construir os objetos necessários sem passar pelo construtor, para que o usuário da API não precisasse se preocupar com esses detalhes.

Alguém tem sugestões a respeito?

[]´s

[quote=asaudate]Caros,

Estou muito interessado na feature de construir um objeto sem passar pelo construtor. Isso porque um dos subprojetos do Banshee tenciona fazer parsing de XML para objeto (de uma maneira bem especial :wink: ) e, pra isso, seria bastante interessante conseguir construir os objetos e ir populando com os dados que a engine for achando no XML. Só que legal mesmo seria se a engine conseguisse construir os objetos necessários sem passar pelo construtor, para que o usuário da API não precisasse se preocupar com esses detalhes.

Alguém tem sugestões a respeito?

[]´s[/quote]

Objenesis faz isso. http://code.google.com/p/objenesis/

Sim, eu estava conferindo o Objenesis agora. Só que (esquecí de mencionar, sorry!) me preocupei com o fato de ele ser compliant só com algumas VM´s, porque isso tem bastaaante cheiro de coisas tipo Unsafe e heresias assim. Não gostaria de ter qualquer relação com classes desse tipo no meu framework.

[]´s

[quote=asaudate]Sim, eu estava conferindo o Objenesis agora. Só que (esquecí de mencionar, sorry!) me preocupei com o fato de ele ser compliant só com algumas VM´s, porque isso tem bastaaante cheiro de coisas tipo Unsafe e heresias assim. Não gostaria de ter qualquer relação com classes desse tipo no meu framework.

[]´s[/quote]

Outro dia ví um código que procurava pelos contrutores, e injetava null nos args caso não encontrasse o construtor no-args. Só que aí todas as classes precisam estar preparadas para receber null, o que pode acontecer também com o Objenesis.

[quote=garcia-jj][quote=asaudate]Sim, eu estava conferindo o Objenesis agora. Só que (esquecí de mencionar, sorry!) me preocupei com o fato de ele ser compliant só com algumas VM´s, porque isso tem bastaaante cheiro de coisas tipo Unsafe e heresias assim. Não gostaria de ter qualquer relação com classes desse tipo no meu framework.

[]´s[/quote]

Outro dia ví um código que procurava pelos contrutores, e injetava null nos args caso não encontrasse o construtor no-args. Só que aí todas as classes precisam estar preparadas para receber null, o que pode acontecer também com o Objenesis.[/quote]

Eu sei que o VRaptor consegue fazer algo assim, mas não estou bem lembrado se era por causa da engine do Spring ou se tinha alguma black magic envolvida…

[quote=Mikhas]Tomei o cuidado que pudi para a biblioteca verificar qual a melhor implementação utilizar dependendo do que estiver disponivel :wink: no ambiente.
Se nenhum “recurso avançado” estiver disponivel, ela vai utilizar a implementação padrão da JDK.
[/quote]

entao ta redondinho! parabens!

Há duas formas: a padrão faz uso do Objenesis para construir; e a segunda como fallback que procura pelos construtores e passa tudo null nos parametros.

Há duas formas: a padrão faz uso do Objenesis para construir; e a segunda como fallback que procura pelos construtores e passa tudo null nos parametros.[/quote]

Não tenho certeza se ficaria satisfeito com nenhuma das duas opções… tô tendencioso a obrigar o usuário a ter um construtor padrão. Afinal de contas, o JAXB faz isso e faz o maior sucesso…

[]´s

Valeu galera pelo apoio e pelos comentários!

Estou no aguardo de sugestões, issues, reclamações e se alguem estiver disposto a entrar no projeto, seja bem vindo!

PS.: Alguem pode me ajudar a colocar no maven a geração do pacote com fontes e javadoc?

Yet another reflection lib. . brincadeira :smiley:

Pessoal, dúvida: no que vocês vem utilizando Reflection no dia-a-dia?

[]s

[quote=peerless]Yet another reflection lib. . brincadeira :smiley:

Pessoal, dúvida: no que vocês vem utilizando Reflection no dia-a-dia?

[]s[/quote]

Em geral, somente em frameworks (tanto os grandes, que vão em JAR´s externos, quanto micro-frameworks de uma ou duas classes, feitos pontualmente para projetos, mesmo).

[]´s

Legal. Bastante útil :smiley:

[quote=asaudate][quote=peerless]Yet another reflection lib. . brincadeira :smiley:

Pessoal, dúvida: no que vocês vem utilizando Reflection no dia-a-dia?

[]s[/quote]

Em geral, somente em frameworks (tanto os grandes, que vão em JAR´s externos, quanto micro-frameworks de uma ou duas classes, feitos pontualmente para projetos, mesmo).

[]´s[/quote]
Fora o uso em frameworks, utilizo para simplificar regras de negócio. Reflection é uma grande ferramenta para economizar em código.

[]'s

Também utilizo eu frameworks próprios e também para simplificar algumas tarefas nas aplicações que desenvolvo

Parabéns pelo framework, com certeza será de grande valia pra comunidade e pra você mesmo profissionalmente.

Ainda não tive tempo, mas vou verificar essa questão da performance, pois eu tenho um framework e pode ser muito útil.

[quote=peerless]

Pessoal, dúvida: no que vocês vem utilizando Reflection no dia-a-dia?

[]s[/quote]

Meu último trabalho com refletion é um “Spring-LDAP-Annotation”… trabalho com ambiente de telecom com armazenamento em baseado em diretório, o spring-ldap em si é muito bom, porém faltava um esquema de annotation, então criei. :lol:

[]'s Hewerton Crisóstomo.

[edit]Recebi um erro(connection closed), então postei de novo, porém o post acima foi publicado mesmo com o erro… [/edit]

Oi galera!

Para que baixou a biblioteca, liberei uma atualização/correão referente a chamada nativa de metodos:

Download
Maven