重温注解

203 阅读1分钟

写点东西记录一下自己的心路历程,也方便回顾,其实就和笔记一样,还可以写点自己最近的心情 蛮好的 今天晚上重温一下注解的一些知识,一会儿结合反射写点东西 闲暇之余玩一玩

概念:Annotation 就是标记,标注的意思
简单的形容一下 即:
@介绍(成功的商人)
马云
那么这样就很好理解, 注解就类似于标签的意思,当然在java中还有更多的作用

      那么java提供了4个元注解给我们:                         
      @Target :表示该注解可以用于什么地方,可能的ElementType参数有:
                
                    CONSTRUCTOR:构造器的声明
                    
                    FIELD:域声明(包括enum实例)
                    
                    LOCAL_VARIABLE:局部变量声明
                    
                    METHOD:方法声明
                    
                    PACKAGE:包声明
                    
                    PARAMETER:参数声明
                    
                    TYPE:类、接口(包括注解类型)或enum声明

        @Retention: 表示需要在什么级别保存该注解信息。可选的RetentionPolicy参数包括:
        
                    SOURCE:注解将被编译器丢弃
        
                    CLASS:注解在class文件中可用,但会被VM丢弃
        
                    RUNTIME:VM将在运行期间保留注解,因此可以通过反射机制读取注解的信息。
        
        @Document:将注解包含在Javadoc中
        
        @Inherited: 允许子类继承父类中的注解

这四个注解 大多数博客都有,这里只是标记一下 那么现在定义一个注解:

        //注解的位置必须在方法,类名上
        @Target(value = {ElementType.METHOD,ElementType.TYPE })
        //保留策略为运行时,一般与反射配合使用来使用注解
        @Retention(value = RetentionPolicy.RUNTIME)
        public @interface Annotation01 {
            //这里不是方法 String为类型 value为属性名
            //default "" ——在使用注解的时候就默认为null 括号不需要
            String value() default "";
        }