Spec updates for getAnnotationsByType and implicit declarations
Alex Buckley
alex.buckley at oracle.com
Thu Jan 31 18:29:09 PST 2013
For repeating annotations, I adopted
get[Declared]AnnotationsByType(Class<T>) in the reflection APIs, and
clarified the definitions of "directly present" and "present".
For parameter reflection, I did the groundwork for "implicitly declared"
constructs in the JLS, and clarified that a compiler is to mark
constructs based on whether they are explicitly or implicitly declared.
A compiler which emits class files can conform by utilizing the
ACC_SYNTHETIC and ACC_MANDATED flags described in JVMS 4.7.22. These
flags defer to a language specification for their full meaning. (It is
generally better for the JVMS to provide a space which meets the
requirements of what a compiler would need to represent a language
construct, than the JLS saving exactly how to map a language construct
into a class file. Example: the Signature attribute, JVMS 4.7.9.)
The spec is at http://cr.openjdk.java.net/~abuckley/8misc.pdf as usual.
Alex
P.S. There was minor discussion on the GPL'd compiler-dev list about
naming the ACC_MANDATED flag, starting at
http://mail.openjdk.java.net/pipermail/compiler-dev/2013-January/005450.html
More information about the enhanced-metadata-spec-discuss
mailing list