- 这个类toString后是个json,你也可以直接使用get方法获取你需要的类信息(比如:常量池)。
// 示例1
JavaClassFile javaClassFile = new JavaClassFile(MyBean.class);
List<JavaClassFile.Attribute.LocalVariable[]> localVariableTableList = javaClassFile.getLocalVariableTableList();
JavaClassFile.Member[] methods = javaClassFile.getMethods();
JavaClassFile.Member helloMethod = javaClassFile.getMethod("hello", new Class[]{String.class, int.class}, void.class);
String[] parameterNames = helloMethod.getParameterNames();
JavaClassFile.Attribute.LocalVariable[] localVariableTable = helloMethod.getLocalVariableTable();
// 示例2
JavaClassFile javaClassFile = new JavaClassFile(path,className);
Member[] fields = javaClassFile.getFields();//字段
Member[] methods = javaClassFile.getMethods();//方法
ConstantPool constantPool = javaClassFile.getConstantPool();//你可以查看常量池
Attribute[] attributes = javaClassFile.getAttributes();//你可以查看常量池
Attribute.LocalVariable[] localVariables = attributes[0].localVariableTable();//你可以查看局部变量
Opcodes opcodes = (Opcodes) attributes[0].get("opcodes");//你可以查看字节码
String localVariablesName = localVariables[0].name();//局部变量名称
- 例子
- 类依赖描述
- 方法区,局部变量表,程序指令地址
- 常量池
- 字节码指令,栈深度
- 数据结构如下
作者邮箱 : [email protected]
github地址 : https://github.com/wangzihaogithub/javaclassparser