代码:
@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
考试大温馨提示:本内容来源于网络,仅代表作者个人观点,与本站立场无关,仅供您学习交流使用。其中可能有部分文章经过多次转载而造成文章内容缺失、错误或文章作者不详等问题,请您谅解。如有侵犯您的权利,请联系我们,本站会立即予以处理。
① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;
② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。