Muitos dos recursos providos pelos frameworks e componentes mais utilizados na indústria extrapolam os simples conceitos da Orientação a Objetos e fazem uso de reflexão e anotações. A utilização dessas poderosas ferramentas pode fazer uma grande diferença, com potencial de aumentar a produtividade do time e melhorar a estrutura do código.
Neste livro, o uso de reflexão e anotações é abordado por completo, indo desde o funcionamento da API até boas práticas em sua utilização. Além disso, o livro também fala sobre ferramentas de código aberto, manipulação de bytecode e as novidades sobre reflexão do Java 8. Suba de nível em suas habilidades de programação aprendendo essa técnica que vai lhe permitir escrever códigos extremamente flexíveis.
قائمة المحتويات
1 – Conhecendo a Reflexão
1.1 – Ainda falta alguma coisa na orientação a objetos?
1.2 – Reflexão, muito prazer!
1.3 – O primeiro contato com a API Reflection
1.4 – Usar reflexão tem um preço?
1.5 – Considerações finais
2 – Java Reflection API
2.1 – Obtendo informações sobre as classes
2.2 – Trabalhando com classes
2.3 – Manipulando objetos
2.4 – Procurando métodos e atributos para validação
2.5 – Coisas que podem dar errado
2.6 – Considerações finais
3 – Metadados e Anotações
3.1 – Definição de metadados
3.2 – Criando anotações
3.3 – Lendo anotações em tempo de execução
3.4 – Limitações das anotações
3.5 – Mapeando parâmetros de linha de comando para uma classe
3.6 – Considerações finais
4 – Proxy Dinâmico
4.1 – O que é um proxy?
4.2 – Proxy dinâmico com a API Reflection
4.3 – Gerando a implementação de uma interface
4.4 – Proxy de classes com CGLib
4.5 – Consumindo anotações em proxies
4.6 – Outras formas de interceptar métodos
4.7 – Considerações finais
5 – Testando classes que usam Reflexão
5.1 – Variando estrutura da classe para teste
5.2 – Teste de proxies dinâmicos
5.3 – Testando a configuração de metadados
5.4 – Gerando classes com Class Mock
5.5 – Considerações finais
6 – Práticas no uso de anotações
6.1 – Mais de uma anotação do mesmo tipo
6.2 – Reduzindo a quantidade de configurações
6.3 – Expressões em anotações
6.4 – Associando comportamento a anotação
6.5 – Mapeamento de anotações
6.6 – Considerações finais
7 – Consumindo e processando metadados
7.1 – Componente base para o exemplo
7.2 – Separando a leitura do processamento de metadados
7.3 – Estendendo a leitura de metadados
7.4 – Tornando os metadados extensíveis
7.5 – Camadas de processamento de metadados
7.6 – Considerações finais
8 – Ferramentas: indo além na reflexão
8.1 – Manipulando beans com Bean Utils
8.2 – Interfaces fluentes para reflexão
8.3 – Procurando por classes
8.4 – Inserindo e substituindo anotações com Aspect J
8.5 – Considerações finais
9 – Manipulação de bytecode
9.1 – Entendendo o bytecode
9.2 – Entendendo o ASM
9.3 – Quando o bytecode pode ser alterado?
9.4 – Criando um bean a partir de um mapa
9.5 – Data da última modificação de um objeto
9.6 – Considerações finais
10 – Reflexão no Java 8
10.1 – Acessando nomes de parâmetros
10.2 – Múltiplas anotações
10.3 – Anotações de Tipo
10.4 – Reflexão e expressões lambda
10.5 – Considerações finais
11 – Truques da API de reflexão
11.1 – Quem me chamou?
11.2 – Recuperando tipos genéricos com reflexão
11.3 – Acessando membros privados
11.4 – API Method Handle
11.5 – Considerações finais
12 – Palavras finais
Dados do produto
عن المؤلف
Eduardo Guerra é desenvolvedor de frameworks, editor-chefe da revista Mundo J e pesquisador do Instituto Nacional de Pesquisas Espaciais (INPE). Foi professor do Instituto Tecnológico de Aeronáutica (ITA), onde concluiu sua graduação, mestrado e doutorado. Suas pesquisas concentram-se nas áreas de design, arquitetura e teste de software. Possui diversas certificações da plataforma Java e experiência como arquiteto de software. Participa de projetos de frameworks open-source, como Swing Bean, Esfinge e Class Mock. Ele acredita que um bom software faz-se mais com criatividade do que com código e vive em busca de melhores formas para seu desenvolvimento. Está no Twitter como @emguerra.