个人简介

Echo Blog


江湖无名 安心练剑
  • ASM-21-Metadata Generic Annotation Debug
    元数据 本章介绍了用于已编译Java类元数据(例如注解)的树API。 之所以很短,是因为这些元数据已经在第4章中介绍过,并且因为一旦知道了相应的 core API,树API就很简单。 泛型 树API不提供对泛型类型的任何支持! 确实,它代表了带有签名的泛型类型,就像在核心API中一样,但是没有提供与SignatureVisitor对应的SignatureNode类,尽管这是可能的(...
    2018-07-20 05:43:31 | Java
  • ASM-19-Method 分析接口与组件
    接口和组件 用于代码分析的ASM API在 org.objectweb.asm.tree.analysis 软件包中。 就像包名称所暗示的那样,它基于树API。 实际上,该程序包提供了进行正向数据流分析的框架。 为了能够使用或多或少的精确值集执行各种数据流分析,数据流分析算法分为两部分: 一个是固定的,由框架提供,另一个是可变的,由用户提供。 更确切地说: 在Analyzer和...
    2018-07-20 05:43:31 | Java
  • ASM-19-Method 分析介绍
    方法分析 本章介绍基于树API的ASM API,用于分析方法代码。 首先介绍代码分析算法,然后提供相应的ASM API和一些示例。 介绍 代码分析是一个非常大的主题,并且存在许多用于分析代码的算法。 在这里不可能全部展示它们,这超出了本文的范围。 实际上,本部分的目的只是概述ASM中使用的算法。 在有关编译器的书中可以找到关于此主题的更好的介绍。 下一节将介绍两种重要的代码分...
    2018-07-20 05:43:31 | Java
  • ASM-18-Method 组件组成
    成分组成 到目前为止,我们只看到了如何创建和转换MethodNode对象,但是还没有看到与类的字节数组表示形式相关的链接。 像对于类一样,此链接是通过组合核心API和树API组件来完成的,如本节所述。 介绍 除了图7.1中所示的字段外,MethodNode类还扩展了MethodVisitor类,并且还提供了两个接受方法,它们将MethodVisitor或ClassVisitor作为参...
    2018-07-20 05:43:31 | Java
  • ASM-17-接口与组件
    方法 本章介绍如何使用ASM树API生成和转换方法。 它从仅提供树API的介绍开始,并提供一些说明性示例,然后介绍如何与核心API组合。 下一章介绍了用于泛型和注解的树形API。 Interfaces and components 说明 MethodNode 用于生成和转换方法的ASM树API基于MethodNode类(请参见图7.1)。 Figure 7.1.: The...
    2018-07-20 05:43:31 | Java
  • ASM-16-组件组成
    组件组成 到目前为止,我们只看到了如何创建和转换ClassNode对象,但是还没有看到如何从类的字节数组表示形式构造ClassNode,反之亦然,如何从ClassNode构造此字节数组。 实际上,这是通过组合核心API和树API组件来完成的,如本节所述。 介绍 除了图6.1中所示的字段之外,ClassNode类还扩展了ClassVisitor类,并且还提供了一个接受方法,该方法将Cl...
    2018-07-20 05:43:31 | Java
  • ASM-15-Tree Classes Interface and Components
    本章简介 本章介绍如何使用ASM树API生成和转换类。 它从仅介绍tree API入手,然后进行说明如何与核心API组合在一起。 在下一章中将说明用于方法,注解和泛型内容的树形API。 Interfaces and components Presentation(介绍) 类节点信息 用于生成和转换已编译Java类的ASM树API基于ClassNode类(请参见图6.1)。 ...
    2018-07-20 05:43:31 | Java
  • ASM-14-reflectASM 性能更高的反射框架
    reflectasm reflectasm is a very small Java library that provides high performance reflection by using code generation. An access class is generated to set/get fields, call methods, or create a ne...
    2018-07-20 05:43:31 | Java