自己看注释!!!
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
/**
* 2021年5月6日 15:45:10
* 目的:反编译.class中的各属性代码
* 学习: 获取.class文件中的属性 类名 、修饰符 、名
*其他: 书上有笔记 烦死了 JavaSe !!! 希望能帮到要帮助的人 -- BiHu
*/
public class Main {
public static void main(String[] args) {
Class clazz = null;
StringBuilder sb = new StringBuilder();
try {
clazz = Class.forName("pack.Person"); //获取到 .class 文件对象
sb.append(Modifier.toString(clazz.getModifiers()) + " class " + clazz.getSimpleName() + "{\n");//把class对象的类加入到sb
Field[] Arr_Field = clazz.getDeclaredFields(); //获取到class对象中各个属性(返回数组)
for (Field f : Arr_Field) {
sb.append("\t"); //为了美观 加一个分隔符哈
sb.append(Modifier.toString(f.getModifiers())); //将属性的修饰符添加到 sb
if (!f.getType().getSimpleName().equals("")) { //如果属性类型名(不带包名) 为 "" 空
sb.append(f.getType().getSimpleName() + " "); //将属性的类型名(不带包名)添加到sb
}
sb.append(f.getName() + "\n"); //将属性名添加到sb
}
} catch (Exception e) {
e.printStackTrace();
}
sb.append("}");
System.out.println(sb); //打印即可..
}
}
作者:咸瑜