Annotation(二) 一个稍微复杂的示例

    技术2022-05-12  60

    一个稍微复杂的示例

    有一个注释类型如下:

    public @interface ComplexAnnotation {

    public enum Sex{, };

     

    public String[] love();//爱好

    public Sex sex() default Sex.;//性别

    public String name();//姓名

    public int age();//年龄

    }

    问题:

    请将该注释类型补充完整。

    将该注释类型注释某一个类,赋值后将值读取出来并打印在Console,参考结果如下:

    李赞红

    25

    游泳  爬山

    import java.lang.annotation.Annotation;

     

    @AnnotationDmo(Loves ={"爬山","游泳"} ,

                         sex= AnnotationDmo.Sex.,

                         age = 25,name="李赞红")

    public class App {

     

           /**

            * @param args

            */

          

          

           public static void main(String[] args) {

                  // TODO Auto-generated method stub

                  Class cl=App.class;

                  AnnotationDmo[] ann=(AnnotationDmo[])cl.getAnnotations();

                  for(AnnotationDmo a:ann){

                         if(a instanceof AnnotationDmo){

                                AnnotationDmo an =(AnnotationDmo)a;

                                System.out.println(an.name());

                                System.out.println(an.age());

                                System.out.println(an.sex());

                                System.out.println(an.sex());String Loves= "";

                                for(String s : an.Loves()){

                                Loves += s + "  ";

                                }

                                System.out.println(Loves);

     

                         }

                  }

           }

     

    }

    思考:

    注释类型中的成员可以有返回值,通过default关键字定义。

    成员返回值类型不可以为java.util.Date或包装类等类型,可以是String或基本数据类型。

    成员返回值类型可以是枚举类型。注意枚举类型的定义方法和访问方法。

    访问方法:ComplexAnnotation.Sex.

     

     


    最新回复(0)