好贷网好贷款

java-注解annotation

发布时间:2016-12-4 5:55:02 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"java-注解annotation",主要涉及到java-注解annotation方面的内容,对于java-注解annotation感兴趣的同学可以参考一下。

package cd.itcast.day2; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; /** * 注解 * * 注解的使用构成: 1,注解的申明 2,在类型(代码)上面打上注解 3,第三方的程序在使用打了注解的类型 * * 作业:自己设计一套文档标签,如果我在一个类上面加了这些标签,我把这个类作为参数传给一个方法,就能为这个类的注释生成一个API文档文件 * * @author Administrator * */ public class AnnotationDemo { /** * 使用Annotation(使用反射来得到标签实例) <A extends Annotation> A getAnnotation(Class<A> * annotationClass):得到指定类型的注解实例 Annotation[] getAnnotations():得到该类型上面的所有注释实例 * Annotation[] getDeclaredAnnotations() :返回直接存在于此元素上的所有注释。 boolean * isAnnotation() : 该类型是否是一个标签类型(Class) boolean isAnnotationPresent(Class<? * extends Annotation> annotationClass) :判断该类型上面是否有指定的标签类型 * * @param args */ public static void main(String[] args) throws Exception { Class<User> c = User.class; // 说明:annotation也是一种类型 // Class a=MyAnn.class; if (c.isAnnotationPresent(MyAnn.class)) { System.out.println("hello"); MyAnn ann = c.getAnnotation(MyAnn.class); System.out.println(ann.name()); System.out.println(Arrays.toString(ann.names())); System.out.println(ann.resetDay()); OtherAnn other = ann.other(); System.out.println("other " + other.value()); } else { System.out.println("fck"); } Method m = c.getDeclaredMethod("getName"); if (m.isAnnotationPresent(MyAnn.class)) { System.out.println("方法上面有标签"); } } /** * @SuppressWanings:去掉警告,(去掉警告的类型写在后面括号里面) 标签有自己定义的能放置的位置 */ @SuppressWarnings(value = "deprecation") public void dateTest() { Date d = new Date(); System.out.println(d.toLocaleString()); AnnotationDemo dd = new AnnotationDemo(); dd.someThing(); } /** * 标签里面可以有值, 1,一个常量值 2,一个数组 * * @Deprecated:方法过时 */ @SuppressWarnings({ "rawtypes", "unused" }) @Deprecated public void someThing() { List a = new ArrayList(); } /** * 注释一个标签。这个标签没有参数值 * * @Override:代表当前方法是覆盖一个父类的方法 */ @Override() public String toString() { return super.toString(); } } package cd.itcast.day2; import java.lang.annotation.ElementType; /** * 自定义一个注释 * @author Administrator * * @Retention:规定定义的这个标签保留到什么时候 * @Target:规定定义的这个标签能加载哪些位置 * ANNOTATION_TYPE:标签上面 * Constructor:构造器上面 * Field:字段 * Local variable:局部变量 * METHOD:方法/方法的返回类型 * PACKAGE:包 * Parmater:方法参数 * TYPE:类/接口/枚举 */ @Target({ElementType.METHOD,ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) public @interface MyAnn { /** * 在标签里面加参数 类型 属性名称() [default 类型的值] * 注意:如果在标签里面仅有value这个属性要填,在使用的时候就可以忽略不写 */ String name() default "itcast"; String[] names() default {}; String value(); WeekDays resetDay(); OtherAnn other(); } package cd.itcast.day2; public @interface OtherAnn { String value(); }

上一篇:Linux体系结构(二): Linux系统层次
下一篇:java-枚举示例

相关文章

相关评论