Top Banner
@rbrugier #JavaProcessor Annotation processor, trésor caché de la JVM
19

Annotation Processor, trésor caché de la JVM

Jul 18, 2015

Download

Technology

Raphael Brugier
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Annotation processor, trésor caché de la JVM

Page 2: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Annotation processor, trésor caché de la JVM

Raphaël Brugier@rbrugier

Développeur chez

Page 3: Annotation Processor, trésor caché de la JVM

Agenda

Nos utilisations

@ ?

Bien débuter

Page 4: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Les @nnotations

Page 5: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Compilation

@ JavacJavac

Validation

Génération

Page 6: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Processors @LesFurets

Page 7: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Processors @LesFurets

Page 8: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Vs Reflection

•Code visible dans l'IDE

•Stack erreurs plus simple

•Performances

Page 9: Annotation Processor, trésor caché de la JVM

JavacJavac

ProcessorsProcessors

Page 10: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Bien débuter

Déclaration

Extraction

Génération

Page 11: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Annotation Processor

+

=

Page 12: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Google @AutoService

github.com/google/auto/tree/master/service

Page 13: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Extraction

Page 14: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Element Un « bloc » de programme

Java.lang.reflect Java.annotation.processing

Java.lang.package PackageElement

java.lang.Class TypeElement

Constructor ExecutableElement

Method ExecutableElement

Field, Parameter VariableElement

Page 15: Annotation Processor, trésor caché de la JVM

Exemple Lister les retours des méthodes

Page 16: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Écrire

Page 17: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

JavaPoet github.com/square/javapoet

Page 18: Annotation Processor, trésor caché de la JVM

@rbrugier#JavaProcessor

Test, Test, TEST ! github.com/google/compile-testing

Page 19: Annotation Processor, trésor caché de la JVM

Pour aller plus loin ...

« Annotation Processing Boilerplate Destruction » speakerdeck.com/jakewharton

« Writing Annotation Processors to Aid Your Development Process » 

github.com/irobertson/jpa-annotation-processor

« LesFurets MDL4UI » 

github.com/lesfurets/mdl4ui

et dagger2, AndroidAnnotations, etc