一、我们介绍几个函数用于反编译一个类​

 

package com.bjpowernode.java_learning;

​

public class D115_1_User {

  private String id;

  public int age;

  protected String addr;

  boolean sex;

}

 

package com.bjpowernode.java_learning;

import java.lang.reflect.Field;

import java.lang.reflect.Modifier;

​

public class D115_2_Reflect {

  public static void main(String[] args) throws Exception {

    //获取整个类

    Class c = D115_1_User.class;

   

    //获取属性

    //获取所有的public修饰的属性

//    Field[] fs = c.getFields();

//    System.out.println(fs.length);

//    System.out.println(fs[0].getName());

   

   

    //获取所有的属性

    Field[] fs =c.getDeclaredFields();

    for(Field field:fs) {

        int i = field.getModifiers();

        //getModifiers是用来显示修饰符的

        String strModifier = Modifier.toString(i);

        System.out.println(i);

        System.out.println(strModifier);

        //Modifier.toString()方法传入数字用于解释是哪种修饰符

       

      Class type = field.getType();

      System.out.println(type.getName());//类的名字

      System.out.println(type.getSimpleName());//类的简易名字

      System.out.println(field.getName());//域的名字

      System.out.println("-----------");

    }

   

    StringBuffer  sb = new StringBuffer();

    sb.append(Modifier.toString(c.getModifiers())+" class "+c.getSimpleName() + "{\n");

    for(Field field:fs) {

      sb.append("\t");

      sb.append(Modifier.toString(field.getModifiers())+" ");

      sb.append(field.getType().getSimpleName() + " ");

      sb.append(field.getName()+";\n");

    }

    sb.append("}");

    System.out.println(sb);

   

  }

​

}

 

二、源码:

D115_1_User.java

D115_2_Reflect.java

https://github.com/ruigege66/Java/blob/master/D115_1_User.java

https://github.com/ruigege66/Java/blob/master/D115_2_Reflect.java

2.CSDN:https://blog.csdn.net/weixin_44630050

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

 

 

posted on 2020-05-15 00:25  心悦君兮君不知-睿  阅读(301)  评论(0编辑  收藏  举报