- 
                Notifications
    You must be signed in to change notification settings 
- Fork 20
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.SOURCEjava
- 
RetentionPolicy.CLASSjava + class
- 
RetentionPolicy.RUNTIMEjava + 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 】