是什么声明一个注解注解的注解
有效期@Retention可放置的地点@Target可继承@Inherited可重复@Repeatable 注解的属性
必填的可选的属性赋值 小案例
是什么一个东西的特征。
声明一个注解public @interface ABC{ }注解的注解
这个注解的特征
有效期@RetentionRetentionPolicy.SOURCE,编译前就丢RetentionPolicy.CLASS,编译完了再丢RetentionPolicy.RUNTIME,不丢 可放置的地点@Target
ElementType.ANNOTATION_TYPE,注解ElementType.CONSTRUCTOR,构造方法ElementType.FIELD,成员ElementType.LOCAL_VARIABLE,局部变量ElementType.METHOD,方法ElementType.PACKAGE,包ElementType.PARAMETER,方法参数ElementType.TYPE,类型(类,接口,枚举等等) 可继承@Inherited
父类有注解,子类继承,也会有注解。
可重复@Repeatable一个东西有多个同一类的特征。比如身兼多职。
注解的属性注解作为一个对象,也会有其属性。
必填的String value();可选的
String value() default "";属性赋值
给属性赋值
@XXX(name='xxx',value='xxx')
单独一个value可以简写
@XXX('xxx')小案例
创建一个代表数据库表的注解@MyTable
有效期:不丢,RUNTIME
地点:类上,TYPE
不继承,不重复。
属性:value,表名,必填。
@Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) public @interface MyTable { String value(); }
在一个实体类上使用它
@MyTable("student") public class Student { }
在测试类中访问
@Test public void fun1() { MyTable tableInfo = Student.class.getAnnotation(MyTable.class); String tableName = tableInfo.value(); System.out.println(tableName); }
输出结果:
student
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)