专业的JAVA编程教程与资源

网站首页 > java教程 正文

全面解析JAVA注解(java注解什么意思)

temp10 2024-09-21 04:02:26 java教程 13 ℃ 0 评论

Java中常见的注解

JDK自带注解

1. @Overide:重载方法

全面解析JAVA注解(java注解什么意思)

2. @Deprecated:标注方法已经过时

3. @SuppressWarnings():抑制警告

注解的分类

按照运行机制

编码注解:注解只在源码中存在,编译后消失

编译时注解:注解在源码和.class文件中都存在(上面三个)

运行时注解:在运行阶段还起作用,甚至还会影响运行逻辑的注解(Spring注解)

按照来源

JDK自带注解

来自第三方的注解自定义注解

元注解



自定义注解

语法要求

1. 成员类型是受限的,合法的类型包括原始类型,String,Class,Annotation,Enumeration

2. 如果注解只有一个成员,则成员建议取名为value(),在使用时可以忽略成员名和赋值号(=)

3. 注解可以没有成员,没有成员的注解称为标识注解(@Override,@Deprecated) 如下:


target:注解作用域:构造方法声明(CONSTRUCTOR)、变量声明(FIELD),局部变量声明(LOCAL_VARIABLE)、方法声明(METHOD)、包声明(PACKAGE)、参数声明

(PARAMETER)、类/接口(TYPE)

Retention:生命周期:SOURCE(只在源码中显示,编译时会丢弃)、CLASS(编译时会记录到class中,运行时忽略)

RUNTIME:运行时存在,可以通过发射获取

Inherited:标识性注解,允许子类它

Documented: 生成javadoc时会包含注解

使用自定义注解

解析注解

概念:通过反射获取类、函数或成员上运行的注解信息,从而实现动态控制程序运行的逻辑。



输出结果:

如果把@Retention(RetentionPolicy.RUNTIME)改为SOURCE,或者ClASS,那么是不会输出以上结果的。



验证注解@Inherited

如果改为:

则结果输出如下:

总结:说明Inherited注解只针对类级别的注解,不支持接口级别的注解,如果子类重写了父类的方法,则子类方法不会继承父类方法的注解。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表