java注解

注解
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.数组类型[] 数组的内部需要是如上的四种类型
6.如何自己描述一个注解类型
  1.通过@interface 定义一个新的注解类型
  2.发现写法与接口非常相似(可以利用接口的特点来记忆注解)
    可以描述public static final的属性 比较少见
    可以描述public abstract的方法 方法要求返回值必须有 返回值类型是如上那些
  3.我们自己定义的注解如果想要拿来使用
    光定义还不够 还需要做很多细致的说明(需要利用Java提供好的注解来说明)
    元注解(也是注解 不是拿来使用的 是用来说明注解)
    @Target 描述当前的这个注解可以放置在哪里写的
    @Retention 描述当前的这个注解存在什么作用域中的
    源代码文件--->编译--->字节码文件--->加载--->内存执行
    SOURCE CLASS RUNTIME
    @Inherited 描述当前这个注解是否能被子类对象继承
    @Document 描述这个注解是否能被文档所记录
  4.自己使用自己描述的注解
    问题1. 在注解里面描述了一个方法 方法没有参数 方法是有返回值String[]
      使用注解的时候 让我们传递参数
      理解为 注解的方法做事 将我们传递给他的参数 搬运走了 给了别人
    问题2. 使用别人写好的注解不用写方法名 我们自己定义的方法必须写名字
      如果我们自己定义的注解 只有一个方法 方法名字叫value
      在使用的时候就可以省略方法名
      如果传递的信息是一个数组 数组内只有一个元素 可以省略{}
      如果方法是两个以上 每一个方法必须写名字

  如何解析注解内携带的信息(反射机制)
    注解应用场景

==========================================================
Properties类的使用
  java.util
  继承HashTable
  使用方式像是map集合 value = getProperty(key)方法
  读取的信息是文件
  文件的后缀名.properties
  文件里面key=value

1.注解写法
    @XXXX (信息)
2.注解放置在哪里写
    类 方法 属性 构造 变量 参数(前面)
3.Java中定义好的注解
    @Deprecated 废弃的
    @Override 检测方法是否是重写
    @SuppressWarnings 去掉程序中的警告(尽量不要用 尽量通过编写代码去掉警告)
unused serial rawtypes deprecation unchecked all
4.如何自己定义注解
    描述一个自己的类 @interface
    类的上面通过元注解来描述
  @Target
  @Retention
  @Inherited
  想要携带一些信息 自定义注解类型 添加方法
  方法要求必须有返回值 返回值类型 基本 String 枚举 注解 数组
  方法的作用将我们传递的信息 搬走了 交给别人
5.注解的作用
  充当注释 仅仅是一个文字说明
  代码检测 @Override
  *携带信息
6.如何访问到注解对象
  如何获取里面的信息(需要反射机制)
7.注解在开发中应用的场景

posted @ 2020-08-05 17:13  EspenWu  阅读(177)  评论(0编辑  收藏  举报