我正在使用 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/