Java連載115-利用Class的某些方法進行反編譯

1、咱們介紹幾個函數用於反編譯一個類​java

 

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);

   

  }

​

}

 

2、源碼:node

D115_1_User.javagit

D115_2_Reflect.javagithub

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

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

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

3.博客園:https://www.cnblogs.com/ruigege0000/學習

4.歡迎關注微信公衆號:傅里葉變換,我的公衆號,僅用於學習交流,後臺回覆」禮包「,獲取大數據學習資料大數據

 

相關文章
相關標籤/搜索