1 2 import java.io.*; 3 import java.util.*; 4 import java.lang.*; 5 import java.lang.reflect.*; 6 import java.lang.annotation.*; 7 8 9 class TypeAnnoCls0 { 10 public String f1; 11 public @TypeAnno1("TypeAnno1") String f2; 12 public @TypeAnno1("TypeAnno1") @TypeAnno2("TypeAnno2") @TypeAnno3 String f3; 13 public @TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2") @TypeAnno2("TypeAnno2") String f4; 14 public @TypeAnno3 @TypeAnno3 @TypeAnno3 String f5; 15 public @TypeAnno3 String f6; 16 17 } 18 19 @Target(ElementType.TYPE_USE) 20 @Retention(RetentionPolicy.RUNTIME) 21 @Repeatable(TypeAnno1Container.class) 22 @interface TypeAnno1 { 23 String value(); 24 } 25 @Target(ElementType.TYPE_USE) 26 @Retention(RetentionPolicy.RUNTIME) 27 @Repeatable(TypeAnno2Container.class) 28 @interface TypeAnno2 { 29 String value(); 30 } 31 @Target(ElementType.TYPE_USE) 32 @Retention(RetentionPolicy.RUNTIME) 33 @Repeatable(TypeAnno3Container.class) 34 @interface TypeAnno3 { 35 } 36 @Target(ElementType.TYPE_USE) 37 @Retention(RetentionPolicy.RUNTIME) 38 @interface TypeAnno1Container { 39 TypeAnno1[] value(); 40 } 41 @Target(ElementType.TYPE_USE) 42 @Retention(RetentionPolicy.RUNTIME) 43 @interface TypeAnno2Container { 44 TypeAnno2[] value(); 45 } 46 @Target(ElementType.TYPE_USE) 47 @Retention(RetentionPolicy.RUNTIME) 48 @interface TypeAnno3Container { 49 TypeAnno3[] value(); 50 } 51