Type Annotations
The Java 6 annotation syntax is useful but limited. The Type
Annotations project is implementing a Java language extension that
permits annotations to be written on uses of types. One example of
the new syntax is generic type arguments, as in
List<@NonNull Object>. The type annotation
syntax is also known as "JSR 308".
This Project is sponsored by the OpenJDK Compiler Group and is targeted for inclusion in the Java SE 7 Platform.
Specification
The Type Annotations specification indicates changes to the Java language and platform.
Implementation
- Download (includes source, platform-independent binary, and documentation)
- Documentation (included in the distribution; includes installation instructions)
- Changelog
- Mercurial repository
Other tools that use type annotations
Several other tools already use the type annotation syntax.
- The Checker Framework makes it easy to write and use compiler plug-ins that implement a custom type system. The compiler plug-in enables a programmer to find bugs or to verify their absence. The Checker Framework comes with several type-checking plug-ins that you can try right away.
- Inference tools automatically add annotations to your code,
making it even easier to start using the checkers distributed with
the Checker Framework.
- Daikon infers the @Nullable type qualifier.
-
JastAdd infers the
@NonNulltype qualifier. - Javarifier
infers the
@ReadOnlytype qualifier.
-
Annotation file utilities extract annotations from, and write
annotations to,
.javaand.classfiles.
Community
Awards
- Received the Most Innovative Java SE/EE JSR of the Year award in 2007.
- Nominated for the Most Outstanding Spec Lead for Java SE/EE award in 2008.

