Wednesday, June 15, 2011

what is a annotation in java and interview questions

Define an Annotation (Annotation Type)

public @interface MyAnnotation {
String doSomething();
}

Example to Annotate Your Code (Annotation)

MyAnnotation (doSomething="What to do")
public void mymethod() {
....
}

Java Annotation Types

There are three annotation types:


  • Marker: Marker type annotations have no elements, except the annotation name itself.


    Example:
    public @interface MyAnnotation {
    }
    Usage:
    @MyAnnotation
    public void mymethod() {
    ....
    }
  • Single-Element: Single-element, or single-value type, annotations provide a single piece of data only. This can be represented with a data=value pair or, simply with the value (a shortcut syntax) only, within parenthesis.

     

    Example:
    public @interface MyAnnotation
    {
    String doSomething();
    }
    Usage:
    @MyAnnotation ("What to do")
    public void mymethod() {
    ....
    }

  • Full-value or multi-value: Full-value type annotations have multiple data members. Therefore, you must use a full data=value parameter syntax for each member.

     

    Example:
    public @interface MyAnnotation {
    String doSomething();
    int count; String date();
    }
    Usage:
    @MyAnnotation (doSomething="What to do", count=1,
    date="09-09-2005")
    public void mymethod() {
    ....
    }

Rules of Thumb for Defining Java Annotation Types

Here are some rules-of-thumb when defining an annotation type:

  1. Annotation declaration should start with an 'at' sign like @, following with an interface keyword, following with the annotation name.
  2. Method declarations should not have any parameters.
  3. Method declarations should not have any throws clauses.
  4. Return types of the method should be one of the following:
    • primitives
    • String
    • Class
    • enum
    • array of the above types

Java Annotation Types

There are two types of annotations available with JDK5:

  • Simple annotations: These are the basic types supplied with Tiger, which you can use to annotate your code only; you cannot use those to create a custom annotation type.
  • Meta annotations: These are the annotation types designed for annotating annotation-type declarations. Simply speaking, these are called the annotations-of-annotations.

No comments:

Post a Comment