-
Notifications
You must be signed in to change notification settings - Fork 19
JavaAnnotation
kcp edited this page Jul 13, 2020
·
1 revision
目录 start
目录 end|2020-04-27 23:42|
参考博客 全面解析Java注解 | Java注解(2)-运行时框架
参考项目 AnnotationDemo
- 注解定义包含四个元注解,分别为@Target,@Retention,@Documented, @Inherited。各元注解的作用如下:
-
@Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括:
-
ElemenetType.CONSTRUCTOR
构造器声明。 -
ElemenetType.FIELD
域声明(包括 enum 实例)。 -
ElemenetType.LOCAL_VARIABLE
局部变量声明。 -
ElemenetType.METHOD
方法声明。 -
ElemenetType.PACKAGE
包声明。 -
ElemenetType.PARAMETER
参数声明。 -
ElemenetType.TYPE
类,接口(包括注解类型)或enum声明。
-
-
@Retention 表示在什么级别保存该注解信息。可选的 RetentionPolicy 参数包括:
-
RetentionPolicy.SOURCE
java -
RetentionPolicy.CLASS
java + class -
RetentionPolicy.RUNTIME
java + class + jvm, 因此可以通过反射机制读取注解的信息。
举一个例子,如@Override里面的Retention设为SOURCE,编译成功了就不要这一些检查的信息,相反,@Deprecated里面的Retention设为RUNTIME,表示除了在编译时会警告我们使用了哪个被Deprecated的方法,在执行的时候也可以查出该方法是否被Deprecated。
-
-
@Documented 将此注解包含在 javadoc 中
-
@Inherited 允许子类继承父类中的注解
-
@Retention(value = RetentionPolicy.RUNTIME)
public @interface GetItem {
// 设置属性内容
String name() default "hello";
String value();
}
- 判断是否有指定注解类型的注解
- 在类上的注解就是得到类对象, 然后判断 isAnnotationPresent(ExcelConfig.class)
- 在方法上的注解就是得到所有方法, 属性同理
-
【 Algorithm 】
-
【 Blog 】
-
【 C 】
-
【 Database 】
-
【 Distributed 】
-
【 FrontEnd 】
- 【 FrontEnd/Frame 】
- 【 FrontEnd/Node 】
- Font
- Hexo
- JavaScript
- LearnPS
- ResponseCode
- SVG
- ViewSolution
- extjs学习笔记
-
【 Functional 】
-
【 Go 】
-
【 Groovy 】
-
【 Java 】
- 【 Java/AdvancedLearning 】
- 【 JavaBasic 】
- 【 JavaCache 】
- 【 JavaCollection 】
- 【 JavaConcurrency 】
- 【 JavaMap 】
- Annotation
- ClassFile
- Collection
- Concurrency
- Deploy
- Exception
- ExtendsAndInterface
- Generics
- IO
- JDBC
- JDKAndJRE
- JMX
- JVM
- Java11
- Java7
- Java8
- JavaNetwork
- JavaReleaseVersion
- JavaWeb
- JvmPerformance
- MQ
- MultipleLanguage
- Proxy
- Reflection
- Serialize
- SyntaxAndType
- Thread
- WebPerformance
- 【 Java/Android 】
- 【 Java/Ecosystem 】
- 【 Java/MSA 】
- 【 Java/Spring 】
- 【 Java/TemplateEngine 】
- 【 Java/Test 】
- 【 Java/Tool 】
- 【 Java/thread 】
- AlibabaJavaStandard
- DesignPattern
- HashMap解析
- Java-NIO
- Java虚拟机
- Log
- MIS
- Quartz
- RESTful
- WebSocket学习笔记
- ZooKeeper学习笔记
- android学习笔记
- 【 Java/AdvancedLearning 】
-
【 Kotlin 】
-
【 Linux 】
- 【 Linux/Alpine 】
- 【 Linux/Arch 】
- 【 Linux/Base 】
- 【 Linux/Centos 】
- 【 Linux/Container 】
- 【 Linux/Debian 】
- 【 Linux/Tool 】
- JavaDevInit
- Linux系统学习
-
【 MyBlog 】
-
【 Python 】
- 【 Python/Tool 】
- Python
- PythonConcurrent
- PythonGUI
- PythonGame
- PythonNet
- PythonOffices
- PythonWeb
- Python基础
- Python核心学习
-
【 Reactive 】
-
【 Rust 】
-
【 Scala 】
-
【 Script 】
-
【 Skills 】
- 【 Skills/Application 】
- 【 Skills/CS 】
- 【 Skills/Cache 】
- 【 Skills/Councurrency 】
- 【 Skills/DevOps 】
- 【 Skills/Document 】
- 【 Skills/Ecology 】
- 【 Skills/Network 】
- 【 Skills/Search 】
- 【 Skills/SoftwareEngineering 】
- 【 Skills/Spider 】
- 【 Skills/Test 】
- 【 Skills/Vcs 】
- 【 Skills/Work 】
- AppManual
- CelebrityQuotes
- Miscellaneous
- Platform
- Problem
- Protobuf
- RegularExpression
- SoftwareDesignEngineer
- Website
-
【 Windows 】