Mirror DSL: facilitando o uso da API de reflection

Mirror DSL: facilitando o uso da API de reflection
jonas
jonas

Compartilhe

No último domingo foi feito o primeiro release público do projeto Mirror (versão 1.2).

O Mirror é um projeto que tem por objetivo facilitar o uso da Java Reflection API, removendo boa parte da burocracia (como as diversas checked exceptions que são lançadas) e utilizando uma DSL para melhorar a legibilidade do código.

Com essa remoção de burocracia e a DSL, é possível transformar o seguinte código:

 Field toSet = null; for (Field f : target.getClass().getDeclaredFields()) { if (f.getName().equals("field")) { toSet = f; } } if (toSet != null && ((toSet.getModifiers() & Modifier.STATIC) == 0) && ((toSet.getModifiers() & Modifier.FINAL) == 0)) { toSet.setAccessible(true); toSet.set(target, value); } 

em algo mais legível e expressivo:

 Mirror.on(target).set().field("fieldName").withValue(value); 

Atualmente o Mirror possui suporte para lidar com as operações reflectivas mais comuns (como instanciar objetos, invocar métodos, ler ou escrever atributos, etc). Ele foi desenvolvido por Adriano Almeida, Diego Feitosa e eu, todos consultores/instrutores aqui da Caelum, enquanto enfretavamos problemas comuns no dia a dia.

Esperamos que possa ser útil para vocês também!

Veja outros artigos sobre Inovação & Gestão