美文网首页
使用反射反编译部分代码

使用反射反编译部分代码

作者: 鱿鱼炸酱面 | 来源:发表于2022-01-27 16:13 被阅读0次
    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);
        }
    }
    

    相关文章

      网友评论

          本文标题:使用反射反编译部分代码

          本文链接:https://www.haomeiwen.com/subject/gheahrtx.html