zoukankan      html  css  js  c++  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.数组类型[] 数组的内部需要如上的四种类型

    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 文件 流 递归
             多线程
             反射注解                               
    
  • 相关阅读:
    XCode 7 运行 cocos2dx 2.2.6问题小节
    SerializeField和Serializable
    convert2utf8withbom
    NGUI制作字体的三种方法
    js json stringify
    nodejs npm 使用淘宝 NPM 镜像
    js url?callback=xxx xxx的介绍
    强引用 弱引用
    关于xml里的encoding
    js 历史
  • 原文地址:https://www.cnblogs.com/zh93/p/13836620.html
Copyright © 2011-2022 走看看