Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Query regarding Java Annotation

 
Jay Shukla
Ranch Hand
Posts: 214
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi I'm new to Java Annotation.

I have gone through some resource on Java Annotation.
they explanied that Anootation type declaratrion is like interface declaration.

e.g.

public @interface RequestForEnhancement {
int id();
String synopsis();
String engineer() default "[unassigned]";
String date(); default "[unimplemented]";
}


but i would like to know that if above annotation declaration is only applicable if you are declaring that on an Interface (e.g. RequestForEnhancement in this case).. Is my understanding is rihgt?

Thanks in Advance.
 
Rob Spoor
Sheriff
Pie
Posts: 20606
60
Chrome Eclipse IDE Java Windows
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
RequestForEnhancement is not an interface, it's the annotation itself. And you can use it on any package, annotation, class, interface, constructor, method, field, parameter or even local variables, until you specify differently using the annotation Target. For example:


Sun decided not to use a new keyword for annotations (possibly to not break old code that uses annotation as variable names), but instead use @interface for that. It can be a bit confusing at first, but once you remember what the extra @ means there shouldn't be much problems.
 
Jay Shukla
Ranch Hand
Posts: 214
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Rob!!!
For your valuable inputs.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic