Date post: | 17-Aug-2019 |
Category: |
Documents |
Upload: | nguyencong |
View: | 220 times |
Download: | 0 times |
Schnelldurchlauf: Java Annotations
Scharfe Anmerkungen für Java 6 3 |
* Auslesbar zur >> Laufzeit
>> Compilezeit !
* Ideal für eigene Meta Modelle
Pluggable Annotation Processing
(JSR 269)
Scharfe Anmerkungen für Java 6 7 |
META-INF\services\javax[..]Processor
+ Eigene Annotation Processor Klasse
JA
R –
Date
i / K
la
sse
np
fa
d
Fazit : Annotations & Pluggable Annotations Processor
PRO:Dead easy to make -> vgl. Beispiel
Dead easy to use -> Klassenpfad aufnehmen
Standard & Nahtlose Integration
BEISPIEL: Hibernate Metamodell Generator
CON:Kann nur Neues (Klassen/Bytecode/...)
hinzufügenScharfe Anmerkungen für Java 6 9 |
Lombok – Installation : Bin ich schon drin?
lombok.jar downloaden
Scharfe Anmerkungen für Java 6 13 |
1.
2.
3.
Installation in Eclipse: lombok.jar ausführenjava –jar lombok.jar
Aufnehmen im Projekt-Klassenpfad
Lombok @Getter / @Setter / @NonNull
Scharfe Anmerkungen für Java 6 16 |
Automatische Equals/Hashcode Implementierung
@Data
Scharfe Anmerkungen für Java 6 20 |
All-in-one Kommando für ein POJO
@Data =Getters
+ Setters+ toString()+ hashCode()+ euqals()+ Constructor-------------POJO
Weitere Features
Angekündigt
Scharfe Anmerkungen für Java 6 25 |
@SneakyThrows
@Getter(lazy)
@Synchronized
@Log
@Delegate
Thread-safe, lazy init Felder
Toll! Delegieren per Annotation
Erzeugt Kopien der Java-Quelldateien
Ersetzt: Lombok-Tags -> Standard Java
Scharfe Anmerkungen für Java 6 26 |
java -jar lombok.jar
delombok src -d src-delombok
Houston?!
Behind the scenes
Hängt sich via Pluggable Processing API ein
Anstatt neuen Bytecode-Klassen zu erzeugen…
… verändert es zur Compilezeit diesen über
den aufgebauten AST (Abstract Syntax Tree)
Nutzt dazu nicht-öffentliche API
Zwei Implementierungen: Eclipse & Javac
Scharfe Anmerkungen für Java 6 27 |
Fazit Lombok
Lob .
Boilerplate-Buster .
Einfache Verwendung .
Kein Lock-in durch Delombok .
Eigene Erweiterungen möglich .
Java 7-like Features .
für Java 6 .
Spannende Ansätze! .
Kritik
Es ist ein HACK!
Neue Sprachsemantik
Bislang nur in Eclipse sinnvoll
Kleinere Usability Glitches
Namen & Umfang der Tags
Scharfe Anmerkungen für Java 6 28 |
Quellen & Referenzen
Besuchen Sie uns auf unserem Stand!
Project Lombok
Website http://projectlombok.org/
Vortragsvideos http://parleys.com/d/1574
http://parleys.com/#st=5&id=2136
Bildquellen
Illustrationen http://www.sxc.hu/
Zeichnungen Oliver Pehnke
Weiterführendes Material
Annotation Pitfalls http://bit.ly/lcntFl
Lombok & NetBeans http://wiki.netbeans.org/Lombok
Eigene Tags schreiben http://www.ibm.com/developerworks/java/library/j-lombok/
Scharfe Anmerkungen für Java 6 29 |
eXXcellent solutions gmbh
Beim Alten Fritz 2
D-89075 Ulm
Telefon: +49 (0) 731 - 550 26 – 0
Telefax: +49 (0) 731 - 550 26 – 99
Web: http://www.exxcellent.de