0
点赞
收藏
分享

微信扫一扫

JavaSE——注解

知年_7740 2022-02-01 阅读 39

文章目录

是什么

一个东西的特征。

声明一个注解

public @interface ABC{
}

注解的注解

这个注解的特征

有效期@Retention

  • RetentionPolicy.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 条评论