使用反射反编译部分代码

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

public class GetMethods {
    public static void main(String[] args) throws ClassNotFoundException {
        Class<?> cls = Class.forName("java.lang.String");
        StringBuilder s = new StringBuilder();
        s.append(Modifier.toString(cls.getModifiers())).append(" class ");
        s.append(cls.getSimpleName()).append(" {").append("\n");
        Field[] fields = cls.getDeclaredFields();
        for (Field f : fields) {
            s.append("\t");
            s.append(Modifier.toString(f.getModifiers())).append(" ");
            s.append(f.getName());
            s.append(";\n");
            s.append("\n");
        }
        Method[] mds = cls.getDeclaredMethods();
        for (Method m : mds) {
            s.append("\t");
            s.append(Modifier.toString(m.getModifiers()));
            if (m.getModifiers() != 0) {
                s.append(" ");
            }
            s.append(m.getReturnType().getSimpleName()).append(" ");
            s.append(m.getName()).append(" ");
            s.append("(");
            int i = 0;
            for (var t : m.getParameters()) {
                i++;
                s.append(t.getType().getSimpleName()).append(" ");
                if (m.getParameters().length != i) {
                    s.append(t.getName()).append(",").append(" ");
                } else {
                    s.append(t.getName());
                }
            }
            s.append(")");
            s.append(" {\n");
            s.append("\t}\n");
            s.append("\n");
        }
        s.append("}");
        System.out.println(s);
    }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容