1
2package annotations;
3
4import java.lang.annotation.Retention;
5import java.lang.annotation.RetentionPolicy;
6
7
8/**
9 * Annotation declaration with different values
10 */
11@Retention(RetentionPolicy.RUNTIME)
12public @interface ValuesAnnotation {
13  byte    byteValue()    default (byte) 255;
14  char    charValue()    default (char) 128;
15  boolean booleanValue() default true;
16  int     intValue()     default 10;
17  short   shortValue()   default (short) 20;
18  long    longValue()    default 100L;
19  float   floatValue()   default 10.0F;
20  double  doubleValue()  default 20.0D;
21  String  stringValue()  default "defaultString";
22
23  Class classValue()     default Values.class;
24  ValuesEnum enumValue() default ValuesEnum.ONE;
25  ValueAttrAnnotation annotationValue() default @ValueAttrAnnotation;
26
27  byte[]    byteArrayValue()    default {(byte) 128, (byte) 129};
28  char[]    charArrayValue()    default { '1', '2'};
29  boolean[] booleanArrayValue() default { true, false};
30  int[]     intArrayValue()     default { 500, 501};
31  short[]   shortArrayValue()   default { (short) 20000, (short) 2001};
32  long[]    longArrayValue()    default { 101L, 102L};
33  float[]   floatArrayValue()   default { 11.0F, 12.0F};
34  double[]  doubleArrayValue()  default { 21.0D, 22.0D};
35  String[]  stringArrayValue()  default { "11", "22"};
36
37  ValuesEnum[] enumArrayValue() default { ValuesEnum.ONE, ValuesEnum.TWO};
38  ValueAttrAnnotation[] annotationArrayValue() default { @ValueAttrAnnotation(), @ValueAttrAnnotation("1")};
39  Class[] classArrayValue() default { Values.class, Values.class};
40
41}
42
43