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:

Banner da Alura em fundo dinâmico azul, sugerindo tecnologia e modernidade para o Quizz Jornada Tech. À esquerda, em letras grandes, 'Quizz Jornada Tech' seguido por 'Teste seus conhecimentos em tecnologia e prepare-se para o próximo nível da sua carreira'. À direita, conectados por uma linha azul suave representando uma trilha, os tópicos: programação, front-end, inteligência artificial, ciência de dados, inovação e gestão. No final da trilha, um botão azul convidando a 'começar agora'. No canto superior direito, o logo da Alura. Clique e inscreva-se já!
 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