čtvrtek 1. ledna 2009

Do pranice: dokumentační anotace

Vždycky když pracuju na nějakém API v Jave 5 a vyšším tak mi chybí několik anotací, kterými bych jednoduše zdokumentoval základní rysy API, abych to nemusel znovu a znovu opisovat do javadocu. Výhodou anotací by navíc oproti javadoc verzi bylo to, že s nimi mohou pracovat nástroje a IDE. Úplně klasickým příkladem je, když chci o nějaké třídě povědět, že je thread safe.

/**
 * Indicates that a class marked this annotation is thread safe. 
 */
@Target(ElementType.TYPE)
public @interface ThreadSafe {

}

a použití

@ThreadSafe
public class Foo {
}

Samozřejmě jsou i další anotace, které by se mi hodily do krámu, například chci o nějakém parametru metody říci, že je nepovinný (může být null) a nebo že třída je immutable. Nevim jak Vám, ale mě přijde, že tyhle anotace, by měly být součástí Java SE.

Související články