- 
                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 】