zoukankan      html  css  js  c++  java
  • 注解

    注解

     

    运行

    Sun JDK字节码生成分为三个阶段:

    1. 解析和填充符号表过程,生成语法树
    2. 插入式注解处理器的注解处理过程,可以操作语法树。
      1. 这个操作语法树的特性,可以让注解生成代码或者填充默认值
      2. GoogleAutoValue值类型生成类库
    3. 分析与字节码生成。

    作用阶段

    枚举类型 java.lang.annotation.RetentionPolicy

    1. SOURCE表示这个Annotation类型的信息只会保留在源码里,源码经过编译之后,Annotation的数据就会消失,并不会保留在编译好的. class文件里;
    2. CLASS表示这个Annotation类型的信息在源码保留,在.class文件也保留,但不会把这些信息加载到虚拟机(JVM)中,如果不设置, 系统默认值是CLASS
    3. RUNTIME表示在源码,编译后的.class都保存信息,在执行的时候也会把这些信息加载到JVM

    作用范围

    枚举类型 java.lang.annotation.ElementType

    1. TYPE(类型)可以用在classinterface eumnannotation上面
    2. FILED(字段)
    3. METHOD(方法)
    4. PARAMETER(参数)
    5. CONSTRUCTOR(构造器)
    6. LOCAL_VARIABLE(局部变量)
    7. ANNITATION_TYPE(注解)
    8. PACKAGE(包)其中TYPE是指,如果没有制定, 那么它可以用在任何上面

      我们写一个最简单的注解,可以为类和字段上使用,作用于运行期间

      测试类

      我们可以通过反射获取类、方法、字段上的注解,根据注解的类型,我们可以获取注解的值,进而,把值赋值给操作对象。

      结果是熟悉的儿歌O(_)O哈哈~

       

      注解处理器

      注解处理器在编译期发生作用,被注解处理器支持的注解标记的类、字段、方法,可以被注解处理器改变语法树,生成新的类或者字节码。这里用注解处理器处理java Bean生成模板。

      自定义javaSe.special.annotation.processor.AutoValue.java

      Java Bean

       

      注解处理器

      比较重要的几个要重写的方法,可以用注解赋值如下,或者重写父类对应的方法。

      必须要重写的方法:

      需要支持的java源码版本

      一个或多个支持的注解类型

      处理程序。

      编译及结果

      javac

      //指定自定义注解相关字节码classpath

      -cp E:work4javaMyJavaDesignsrc

      //指定自定义注解处理器

      -processor javaSe.special.annotation.processor.AutoValueProcessor

      //指定自定义注解处理器根路径

      -processorpath E:work4javaMyJavaDesignsrc

      //要编译的一个或多个类

      E:work4javaMyJavaDesignsrcjavaSespecialannotationprocessorStudent.java E:work4javaMyJavaDesignsrcjavaSespecialannotationprocessorTeacher.java

       

      结果运行图:

  • 相关阅读:
    ORACLE 查看进程数,已执行任务数, 剩余任务数,删除指定任务
    ORACLE 收集统计整个用户数据
    解决Hystrix dashboard Turbine 一直 Loading…… 及其他坑
    利用 Maven 构造 Spring Cloud 微服务架构 模块使用 spring Boot构建
    AES加解密
    JAVA POI XSSFWorkbook导出扩展名为xlsx的Excel,附带weblogic 项目导出Excel文件错误的解决方案
    JAVA 文件的上传下载
    shell启停服务脚本模板
    JAVA 设计模式之 原型模式详解
    JAVA 设计模式之 工厂模式详解
  • 原文地址:https://www.cnblogs.com/jiumao/p/7136434.html
Copyright © 2011-2022 走看看