[JSR308] Annotation Inheritance & annotation's composition

Niko Matsakis niko at alum.mit.edu
Mon Oct 6 04:08:33 EDT 2008

On Oct 6, 2008, at 9:22 AM, Maxim Kizub wrote:
> Thus, the inheritance of annotations rises a question, if we have
> @Public class Foo {}
> and take
> Foo.class.getAnnotation(Access.class)
> shell it return the instance of @Public annotation, or null?
> And if we have
> @Public @Access(0) class Foo {}
> shell it yield a compilation-time error (since @Access is not allowed
> to have multiple annotations
> attached to one item)?

This is one reason why I included both multiple annotations AND  
inheritance together in my proposal, though personally for what I am  
doing multiple annotations would be the more useful of the two.

However, for those cases where multiple annotations are prohibited,  
then I think these examples would simply result in static errors.

Also, if @Foo extends @Bar, and the user asks for any instances of  
Bar.class, then I think the @Foo annotation should be returned.


More information about the JSR308 mailing list