RFR: JDK-8267936: PreserveAllAnnotations option doesn't expose the annotation to Java code
Joe Darcy
joe.darcy at oracle.com
Tue Jun 1 18:43:12 UTC 2021
On 5/29/2021 12:20 AM, Jaroslav Tulach wrote:
> This PR exposes runtime invisible annotations via `Class.getAnnotation` when `-XX:+PreserveAllAnnotations` option is passed to the JVM.
>
> Existing `-XX:+PreserveAllAnnotations` option can be very useful for code that needs to access annotations with `RetentionPolicy.CLASS` without the need to parse the .class files manually. While the RuntimeInvisibleAnnotations are kept in the runtime, they are not visible via java.lang.reflect API. I assume that's just an omission.
Not having CLASS retention annotations visible through the
java.lang.reflect API is not an omission, it is a design choice from JSR
175. If CLASS retention annotations were visible through
java.lang.reflec, they would just be RUNTIME retention annotations.
-Joe
More information about the core-libs-dev
mailing list