Annotation

1.注解的写法

@xxx[(一些信息)]

2.注解放置位置

类的上面 属性上面 方法上面 构造方法上面 参数前面

3.注解的作用

1.用来充当注释的作用(仅仅是一个文字的说明) @Deprecated

2.用来做代码的检测(验证) @Override

*3.可以携带一些信息(内容) 文件.properties .xml 注解

4.java中有一些写好的注解供我们使用

@Deprecated 用来说明方法是废弃的
@Override 用来做代码检测 检测此方法是否是一个重写方法
@SuppressWarnings(信息) String[] {""} 如果数组内的元素只有一个长度 可以省略{}
unused 变量定义后未被使用
serial 类实现了序列化接口 不添加序列化ID号
rawtypes 集合没有定义泛型
deprecation 方法已废弃
*unchecked 出现了泛型的问题 可以不检测
all 包含了以上所有(不推荐)

5.注解中可以携带信息 可以不携带

信息不能随便写 信息的类型只能是如下的类型
1.基本数据类型
2.String类型
3.枚举类型enum
4.注解类型@
5.数组类型[] 数组的内部需要如上的四种类型

4.自定义注解类型

1.通过@interface定义一个新的注解类型
2.写法与接口相似(可以利用接口的特点来记忆注解)

可以描述public static final的属性 比较少见
可以描述public abstract的方法 方法要求必须有返回值 返回值类型是如上那些

3.元注解
注解定义完成后 还需要很多细致的说明(利用Java提供好的注解--元注解)
元注解(也是注解 不是拿来使用的 是用来说明注解)      

@Target 描述当前的这个注解可以放置在哪里写的
@Retention  描述当前的这个注解存在什么作用域中的,默认为runtime
源代码文件--->编译--->字节码文件--->加载--->内存执行
  SOURCE              CLASS              RUNTIME
@Inherited 描述当前这个注解是否能被子类对象继承
@Document 描述当前这个注解能否被文档所记录
4.使用自定义注解
问题1.在注解中描述了一个方法 方法没有参数 返回值String[]
使用注解时 需要传递参数
理解为:传递的参数 作为返回值 给了别人
问题2.使用别人写好方法名 我们自己定义的方法必须写方法名
只有当注解中只有一个方法,且方法名为value时,方法名可以省略
如果传递的信息是一个数组 数组内只有一个元素 可以省略{}
 如何解析注解内携带的信息(反射机制)                                             

5.注解应用场景

 Properties类的使用
     java.util
     继承HashTable
     使用方式像是map集合 value=getProperty(key)方法
     读取的信息是文件
     文件的后缀名.properties
     文件里面key=value 
      1.注解写法:
             @xxxxx(信息)
      2.注解放置位置
             类 方法 属性 构造 变量 参数(前面)
      3.java中定义好的注解
              @Deprecated     废弃的
              @Override       检测方法是否是重写
              @SuppressWarnings  去掉程序中的警告(尽量不要用 尽量通过编写代码去掉警告)
         unused serial rawtypes deprecation unchecked all
       4.自定义注解
              描述一个自己的类  @interface
              类的上面通过元注解来描述
                @Target
                @Retention
                @Inherited
         想要携带一些信息 自定义注解类型 添加方法
         方法要求必须有返回值 返回值类型 基本数据类型 枚举 注解 数组
          方法的作用将我们传递的信息 搬走了 交给别人
       5.注解的作用
             充当注释  仅仅是一个文字说明
             代码检测 @Override
              *携带信息
       6.如何访问到注解对象
            如何获取到里面的信息(需要反射机制)
       7.注解在开发中应用的场景     
============================================================
如何利用反射技术 解析注解(内部的携带的信息)
        1.获取类Class
        2.获取类中的成员 类 属性 方法 构造方法
        3.Annotation a=成员.getAnnotation(注解类型.class)
        4.注解对象 执行方法获取返回结果
============================================================
        java基本语法结构
            数据类型 运算符 控制语句 数组使用
        java面向对象编程思想
            类和对象 类中的成员 方法重载
            类和类的关系 特征 抽象类 接口 多态
            设计模式 内存机制 垃圾回收
        java中提供的工具类
            包装类 日期 数字 字符串
            集合相关 异常
         I/O 文件 流 递归
         多线程
         反射注解                               
原文地址:https://www.cnblogs.com/zh93/p/13836620.html