JavaSE——注解

JavaSE——注解,第1张

JavaSE——注解

文章目录

是什么声明一个注解注解的注解

有效期@Retention可放置的地点@Target可继承@Inherited可重复@Repeatable 注解的属性

必填的可选的属性赋值 小案例

是什么

一个东西的特征。

声明一个注解
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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5718797.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存