通过反射,进行反编译的代码实现
package com.wenqidao.java.bean;
// 反射属性Field
public class Student {
// Field翻译为字段,其实就是属性/成员
// 4个Field,分别采用了不同的访问控制权限修饰符
private String name; // Field对象
protected int age; // Field对象
boolean sex;
public int no;
public static final double MATH_PI = 3.1415926;
}
package com.wenqidao.java.reflect;
//通过反射机制,反编译一个类的属性Field
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
public class ReflectTest {
public static void main(String[] args) throws Exception{
// 创建这个是为了拼接字符串。
StringBuilder s = new StringBuilder();
Class studentClass = Class.forName("com.bjpowernode.java.bean.Student");
// Class studentClass = Class.forName("java.lang.Thread");
s.append(Modifier.toString(studentClass.getModifiers()) + " class " + studentClass.getSimpleName() + " {\n");
Field[] fields = studentClass.getDeclaredFields();
for(Field field : fields){
s.append("\t");
s.append(Modifier.toString(field.getModifiers()));
s.append(" ");
s.append(field.getType().getSimpleName());
s.append(" ");
s.append(field.getName());
s.append(";\n");
}
s.append("}");
System.out.println(s);
}
}
运行结果:

本文介绍了使用Java反射技术进行代码反编译的实践过程,详细讲解了如何通过反射来获取并理解字节码,从而实现反编译操作。
2248

被折叠的 条评论
为什么被折叠?



