java - 使用 ASM 树 API 获取字段的修饰符

标签 java field modifier

我正在使用 ASM 编写 Java 类文件的分析器。我想确定的一件事是类中字段的修饰符(public、static、final?)是什么。但我不确定该怎么做。

在文档中我找到了修饰符的操作码,它似乎与 FieldNode 类的访问值相关。但是我不明白我是如何从这个值中导出字段的修饰符的。

有什么建议吗?

最佳答案

访问成员变量是一个位域,每个位位置对应一个特定的访问修饰符。要检查一点,您必须使用二进制 AND 和 Opcodes 中的常量,并检查结果是否不为零。例如:

boolean isPublic = (node.access & Opcodes.ACC_PUBLIC) != 0;
boolean isStatic = (node.access & Opcodes.ACC_STATIC) != 0;

关于java - 使用 ASM 树 API 获取字段的修饰符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9535060/

相关文章:

java - 远程运行时 Swing JDialog 速度缓慢

java - 使用 mergeSort 的合并算法合并大小为 n 的 K 个已排序数组

android - 在 Android 编辑文本字段中显示一条消息

C# StructLayout/FieldOffset 和数组中的索引

Java Reflection - 从 set 方法中获取字段的名称

css - 如何使用 BEM CSS 修改 block 的多个元素

java - 自定义异常类的修饰符 (java)

c# - 新(修饰符)函数的实际用法?

java - 为什么即使 url 工作正常,此代码也会抛出 java.io.FileNotFoundException

java - 使用 Mockito 使用 @Value 时如何模拟 map