理解Java基础之注解Annotation

来源:java认证发布时间:2012-11-12 13:16:19java认证视频

  代码:

  @SuppressWarnings("unchecked") 如果SuppressWarnings所声明的被禁止警告个数为一个时,可以省去大括号:

  @SuppressWarnings("unchecked") 五、自定义annontation示例

  示例共涉及四个类:

  清单1:Author.java

  packagecom.magc.annotation;

  importjava.lang.annotation.Documented;

  importjava.lang.annotation.ElementType;

  importjava.lang.annotation.Retention;

  importjava.lang.annotation.RetentionPolicy;

  importjava.lang.annotation.Target;

  /*** 定义作者信息,name和group  * @authormagc  **/

  @Retention(RetentionPolicy.RUNTIME)

  @Target(ElementType.METHOD)

  @Documentedpublic@interfaceAuthor

  {

  String name();

  String group();

  }

  清单2:Description.java

  /*** */ packagecom.magc.annotation;

  importjava.lang.annotation.Documented;

  importjava.lang.annotation.ElementType;

  importjava.lang.annotation.Retention;

  importjava.lang.annotation.RetentionPolicy;

  importjava.lang.annotation.Target;

  /*** @authormagc  *  * 定义描述信息 value*/

  @Retention(RetentionPolicy.RUNTIME)

  @Target(ElementType.TYPE)

  @Documentedpublic@interfaceDescription

  {

  String value();

  }

  清单3:Utility.java

  packagecom.magc.annotation;

  @Description(value ="这是一个有用的工具类")publicclassUtility {

  @Author(name ="haoran_202",group="com.magc")publicString work()

  {return"work over!";

  }

  }

  注:这是个普通的Java类,运行了@Description和@Author注解。

  清单3:AnalysisAnnotation.java

  packagecom.magc.annotation;

  importjava.lang.reflect.Method;

  publicclassAnalysisAnnotation

  {

  /*** 在运行时分析处理annotation类型的信息   *  * */

  publicstaticvoidmain(String[] args)

  {try{//通过运行时反射API获得annotation信息

  Class rt_class =Class.forName("com.magc.annotation.Utility");

  Method[] methods =rt_class.getMethods();

  booleanflag =rt_class.isAnnotationPresent(Description.class);

  if(flag)  {  Description description =(Description)rt_class.getAnnotation(Description.class);

  System.out.println("Utility's Description--->"+description.value());

  for(Method method : methods) {if(method.isAnnotationPresent(Author.class))

  {  Author author =(Author)method.getAnnotation(Author.class);

  System.out.println("Utility's Author--->"+author.name()+"from "+author.group());

  }

  }

  }

  }

  catch(ClassNotFoundException e)

  {

  e.printStackTrace();

  }

  }

  }

  注:这是个与自定义@Description和@Author配套的基础框架或工具类,通过此类来获得与普通Java类Utility.java关联的信息,即描述和作者。

  运行AnalysisAnnotation,输出结果为:

  Utility's Description--->这是一个有用的工具类

  Utility's Author--->haoran_202 from com.magc

  考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答