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

Annotation Processor, trésor caché de la JVM

Embed Size (px)

Citation preview

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