Link copiato negli appunti
Le annotazioni (annotations) sono una realtà in Java ormai dal 2004, anno del rilascio di Java SE 5 "Tiger", ed in breve tempo hanno raggiunto una diffusione capillare tanto nella JDK quanto nei framework più utilizzati e diffusi, specie in ambito Java EE.
Con l’arrivo di Dolphin è prevista un’estensione dell’utilizzo delle annotazioni anche ai tipi: il sottoprogetto di OpenJDK7 in questione è Type Annotations, sviluppato in ambito accademico ed in parte basato su Checker Framework.
Ecco un po’ di esempi di utilizzo delle type annotations.
- tipi di argomento per classi e interfacce con parametri tramite l’uso di generics e wildcard;
Map<@NonNull String, @NonEmpty List<@Readonly Document>> files; class Folder<F extends @Existing File> { ... } Collection<? super @Existing File> interface WonderfulList<@Reified E> { ... }
- implementazioni di interfacce;
class UnmodifiableList<T> implements @Readonly List<@Readonly T> { ... }
- clausola
throws
;void monitorTemperature() throws @Critical TemperatureException { ... }
- array;
@Readonly Document [][] docs1 = new @Readonly Document [2][12]; // array of arrays of read-only documents Document @Readonly [][] docs2 = new Document @Readonly [2][12]; // read-only array of arrays of documents Document[] @Readonly [] docs3 = new Document[2] @Readonly [12]; // array of read-only arrays of documents
- operatore di cast;
myString = (@NonNull String) myObject;
- operatore
instanceof
per testare l’appartenenza di un oggetto ad una classe;boolean isNonNull = myString instanceof @NonNull String;
- creazione di oggetti;
new @NonEmpty @Readonly List<String>(myNonEmptyStringSet)
Manco a dirlo, chi ha bisogno di un rapido ripasso può fare riferimento ad un paio di risorse utili su HTML.it.