个人简介

Echo Blog


江湖无名 安心练剑
  • ASM-11-Metadata Debug 调试
    Debug 使用 javac -g 编译的类包含其源文件的名称,源行号和字节码指令之间的映射以及源代码中的本地变量名称和字节码中的本地变量槽之间的映射。 此可选信息在调试器中以及可用时在异常堆栈跟踪中使用。 结构体 类的源文件名存储在专用的类文件结构部分中(请参见图2.1)。 源行号和字节码指令之间的映射存储为方法的已编译代码部分中(行号,标签)对的列表。 例如,如果l1,l2和...
    2018-07-20 05:43:31 | Java
  • ASM-10-Metadata Annotation 注解
    注解 如果类,字段,方法和方法参数注解(例如@Deprecated或@Override)存储在已编译的类中,则它们的保留策略不是RetentionPolicy.SOURCE。 该信息在运行时不会由字节码指令使用,但是如果保留策略为RetentionPolicy.RUNTIME,则可以通过反射API进行访问。 编译器也可以使用它。 结构 结构体 源代码中的注解可以采用多种形式,例如...
    2018-07-20 05:43:31 | Java
  • ASM-09-Metadata Generic 泛型
    注解 本章说明如何使用核心API生成和转换已编译的Java类元数据,例如注解。 每个部分均以一种类型的元数据开始呈现,然后以一些说明性示例呈现相应的ASM接口,组件和工具以生成和转换这些元数据。 泛型 诸如 List<E> 之类的通用类以及使用它们的类包含有关它们声明或使用的通用类型的信息。 字节码指令在运行时不使用此信息,但是可以通过反射API进行访问。 编译器还使...
    2018-07-20 05:43:31 | Java
  • ASM-08-Method 方法增强实战
    Method 回顾 上面几节谈论了大量的 method 方法,感觉 ASM 提供了很多强大的功能。 但是缺少实战有时候就比较没有实感,所以选择一个比较简单的例子进行编码。 一点想法 基本信息 可以基于 asm 获取 class 的基本信息 reflect 可以学习 ReflectASM 的思想,自己基于 ASM 实现 field/method 等较为高效的调用。 aop 直...
    2018-07-20 05:43:31 | Java
  • ASM-07-Method Tools 工具类
    Tools org.objectweb.asm.commons 软件包包含一些预定义的方法适配器,这些适配器可用于定义您自己的适配器。 本节介绍其中的三个,并说明如何将它们与3.2.4节的AddTimerAdapter示例一起使用。 它还显示了如何使用上一章中介绍的工具简化方法的生成或转换。 Basic tools 2.3 节中介绍的工具也可以用于方法。 Type 许多字节码指...
    2018-07-20 05:43:31 | Java
  • ASM-06-Method Interface and Components
    介绍 用于生成和转换已编译方法的ASM API基于MethodVisitor抽象类(请参见图3.4),该类由ClassVisitor的visitMethod方法返回。 除了下一章中将介绍的与注释和调试信息有关的一些方法外,此类还基于以下内容为每个字节码指令类别定义了一个方法: 这些指令的参数数量和类型(这些类别与3.1.2节中介绍的类别不对应)。 必须按以下顺序调用这些方法(在Met...
    2018-07-20 05:43:31 | Java
  • ASM-05-Method Structure
    方法 本章说明如何使用核心ASM API生成和转换编译方法。 它首先介绍了已编译的方法,然后提供了许多说明性示例,介绍了相应的ASM接口,组件以及生成和转换它们的工具。 结构体 在已编译的类中,方法的代码存储为一系列字节码指令。 为了生成和转换类,了解这些指令并理解它们的工作原理至关重要。 本节概述了这些指令,这些指令应足以开始对简单的类生成器和转换器进行编码。 要获得完整的定...
    2018-07-20 05:43:31 | Java
  • ASM-04-class tools
    工具类 除了ClassVisitor类以及相关的ClassReader和ClassWriter组件之外,ASM在org.objectweb.asm.util包中还提供了一些工具,这些工具在类生成器或适配器的开发过程中很有用,但不需要 在运行时。 ASM还提供了一个实用程序类,用于在运行时处理内部名称,类型描述符和方法描述符。 所有这些工具在下面介绍。 类型(Type) 如您在前几节...
    2018-07-20 05:43:31 | Java