1.ReflectUtil.java 

  1 package com.example.scansell;
  2 
  3 import android.util.Log;
  4 
  5 import java.lang.reflect.Constructor;
  6 import java.lang.reflect.Field;
  7 import java.lang.reflect.Method;
  8 import java.lang.reflect.Parameter;
  9 
 10 public class ReflectUtil {
 11 
 12     private static String getModifier(int i){
 13         switch (i){
 14             case 1  :
 15             case 2  : return "public";
 16             case 3  : return "private";
 17             case 9  : return "public static";
 18             case 10 : return "private static";
 19 
 20             case 18 : return "private final";
 21             case 25 : return "public static final";
 22         }
 23         return "" + i;
 24     }
 25 
 26     public static void printClass(Class clazz){
 27         Log.e("ReflectUtil", "printAllMethods");
 28 
 29         Class supper = clazz.getSuperclass();
 30         Class interfaces[] = clazz.getInterfaces();
 31         String data = " \n\n\n---------------------class.info -------------------\n\n";
 32         data  += "package = " + clazz.getPackage()
 33                 + "\nname = " + clazz.getName()
 34                 + "\ntypeName = " + clazz.getTypeName()
 35                 + "\nsimpleName = " + clazz.getSimpleName()
 36                 + "\nCanonicalName = " + clazz.getCanonicalName()
 37                 + "\nextends = " + supper.getCanonicalName()
 38                 + "\nimplements [ " + interfaces.length + " ]  = ";
 39         for (int i = 0; i < interfaces.length; ++i){
 40             Class intfc = interfaces[i];
 41             data += intfc.getCanonicalName() + ( i < interfaces.length - 1 ? "," : "") ;
 42         }
 43         Log.e("ReflectUtil", data + "\n\n\n");
 44 
 45 
 46         Constructor[] cons = clazz.getDeclaredConstructors();
 47         data = " \n\n\n---------------------所有构造方法 [" + cons.length + "]-------------------\n\n";
 48 
 49         for (Constructor constructor : cons){
 50             data += getModifier(constructor.getModifiers()) + "\t" + constructor.getName() +  "( ";
 51             Parameter parameters[] = constructor.getParameters();
 52             for (int i = 0 ;i < parameters.length;++i){
 53                 Parameter parameter = parameters[i];
 54                 data += parameter.getType().getSimpleName() + (i < parameters.length - 1 ?  "," : "");
 55             }
 56             data += " )\n";
 57         }
 58         Log.e("ReflectUtil", data + "\n\n\n");
 59 
 60 
 61         cons = clazz.getConstructors();
 62         data = " \n\n\n---------------------公开构造方法 [" + cons.length + "]-------------------\n\n";
 63         for (Constructor constructor : cons){
 64             data += getModifier(constructor.getModifiers()) + "\t" + constructor.getName() + "( ";
 65             Parameter parameters[] = constructor.getParameters();
 66             for (int i = 0 ;i < parameters.length;++i){
 67                 Parameter parameter = parameters[i];
 68                 data += parameter.getType().getSimpleName() + (i < parameters.length - 1 ?  "," : "");
 69             }
 70             data += " )\n";
 71         }
 72         Log.e("ReflectUtil", data + "\n\n\n");
 73 
 74 
 75         Method[] methods = clazz.getDeclaredMethods();
 76         data = " \n\n\n---------------------类方法(不含基类) [" + methods.length + "]-------------------\n\n";
 77         for (Method method : methods){
 78             data += getModifier(method.getModifiers()) + "\t" + method.getName() + "( " ;
 79             Parameter parameters[] = method.getParameters();
 80             for (int i = 0 ;i < parameters.length;++i){
 81                 Parameter parameter = parameters[i];
 82                 data += parameter.getType().getSimpleName() + (i < parameters.length - 1 ?  "," : "");
 83             }
 84             data += " )\n";
 85         }
 86         Log.e("ReflectUtil", data + "\n\n\n");
 87 
 88 
 89         methods = clazz.getMethods();
 90         data = " \n\n\n---------------------类方法(含基类)  [" + methods.length + "]-------------------\n\n";
 91         for (Method method : methods){
 92             data += getModifier(method.getModifiers()) + "\t" + method.getName() + "( ";
 93             Parameter parameters[] = method.getParameters();
 94             for (int i = 0 ;i < parameters.length;++i){
 95                 Parameter parameter = parameters[i];
 96                 data += parameter.getType().getSimpleName() + (i < parameters.length - 1 ?  "," : "");
 97             }
 98             data += " )\n";
 99         }
100         Log.e("ReflectUtil", data + "\n\n\n");
101 
102 
103         Field[] fields = clazz.getFields();
104         data = " \n\n\n---------------------类公开属性(含基类)  [" + fields.length + "]-------------------\n\n";
105         for (Field field : fields){
106             data += getModifier(field.getModifiers()) + "\t" + field.getType().getSimpleName() + "\t" + field.getName() ;
107             data += "\n";
108         }
109         Log.e("ReflectUtil", data + "\n\n\n");
110 
111 
112         fields = clazz.getDeclaredFields();
113         data = " \n\n\n---------------------类定义的属性(不含基类)  [" + fields.length + "]-------------------\n\n";
114         for (Field field : fields){
115             data += getModifier(field.getModifiers()) + "\t" + field.getType().getSimpleName() + "\t" + field.getName() ;
116             data += "\n";
117         }
118         Log.e("ReflectUtil", data + "\n\n\n");
119 
120 
121         Log.e("ReflectUtil", " printAllMethods : ==========-------=========== =======\n\n\n" );
122     }
123 }

 

相关文章:

  • 2021-10-04
  • 2022-12-23
  • 2021-05-16
  • 2021-12-06
  • 2021-12-10
  • 2021-06-11
  • 2021-11-27
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-17
  • 2021-10-25
相关资源
相似解决方案