A single-member annotation contains only one member.
It allows a shorthand form of setting the member value.
When only one member is present, we don't need to specify its name.
import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.reflect.Method; // A single-member annotation. @Retention(RetentionPolicy.RUNTIME) @interface MySingle { int value(); // this variable name must be value } public class Main { // Annotate a method using a marker. @MySingle(100)// ww w .j a v a 2 s . com public static void myMeth() { Main ob = new Main(); try { Method m = ob.getClass().getMethod("myMeth"); MySingle anno = m.getAnnotation(MySingle.class); System.out.println(anno.value()); // displays 100 } catch (NoSuchMethodException exc) { System.out.println("Method Not Found."); } } public static void main(String args[]) { myMeth(); } }