VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • Java连载115-利用Class的某些方法进行反编译

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

 

复制代码
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

 

出  处:https://www.cnblogs.com/ruigege0000/p/12892369.html


相关教程