网站建议:179001057@qq.com

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

技术2022-05-12  2

一个稍微复杂的示例

有一个注释类型如下:

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)