欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

模拟反编译,输出一个类的所有属性

程序员文章站 2024-03-13 12:06:33
...

模拟反编译,输出一个类的所有属性:

测试代码:

package reflect;

import java.lang.reflect.Field;
import java.lang.reflect.Modifier;

public class Test08 {
    public static void main(String[] args) {

        String className = "java.lang.String";
        Class aClass = null;

        try {
            // 拿到这个类的字节码
            aClass = Class.forName(className);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }

        // 创建一个字符连接对象
        StringBuilder s = new StringBuilder();

        s.append(Modifier.toString(aClass.getModifiers()) + " " + aClass.getSimpleName() + " {\n");

        // 追加所有的属性
        Field[] fields = aClass.getDeclaredFields();
        for (Field f : fields) {
            s.append("    ");
            s.append(Modifier.toString(f.getModifiers()));  // 访问修饰符列表
            s.append(" ");
            s.append(f.getType().getSimpleName());  // 属性的类型
            s.append(" ");
            s.append(f.getName());  // 属性变量名
            s.append( ";\n");
        }

        s.append("}");

        System.out.println(s);
    }
}

运行截图:
模拟反编译,输出一个类的所有属性

相关标签: Java java