Java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法,它就是注解annotation。
注解分类按照运行机制
a. 源码注解:注解只在源码中存在,编译成.class文件就不存在了。
b. 编译时注解:注解在源码和.class文件中都存在,例如JDK自带的@Override
、@Deprecated
、@SuppressWarnings
等。
c. 运行时注解:在运行阶段起作用,甚至会影响运行逻辑的注解。
按照来源
来自JDK的注解
来自第三方的注解
自定义的注解
@target
:取值为CONSTRUCTOR / FIELD / LOCAL_VARIABLE / METHOD / PACKAGE / PARAMETER / TYPE,表示自定义注解的作用范围
CONSTRUCTOR:构造方法声明
FIELD:字段生命
LOCAL_VARIABLE:局部变量声明
METHOD:方法声明
PACKAGE:包声明
PARAMTER:参数声明
TYPE:类接口
@Retention
:取值为SOURCE / CLASS / RUNTIME,表示自定义注解的存在阶段
SOURCE:只在源码中显示,编译时会丢弃
CLASS:编译时会记录到.class文件中,运行时忽略
RUNTIME:运行时存在,可通过反射获取
@Inherited
:表示允许子注解继承@Documented
:生成javadoc会包括注解信息例子
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Decription {
String desc();
String author();
int age() default 18;
}
使用注解的语法
@<注解名>(<成员名2>=<成员值1>,<成员名2><成员值2>,...)
例子
@Description(desc="I am eyeColor",author="imooc boy",age=18)
public String eyeColor(){
return "red";
}
Github:https://github.com/i2it,欢迎关注。
2025 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123