1.ReflectUtil.java

 package com.example.scansell;

 import android.util.Log;

 import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Parameter; public class ReflectUtil { private static String getModifier(int i){
switch (i){
case :
case : return "public";
case : return "private";
case : return "public static";
case : return "private static"; case : return "private final";
case : return "public static final";
}
return "" + i;
} public static void printClass(Class clazz){
Log.e("ReflectUtil", "printAllMethods"); Class supper = clazz.getSuperclass();
Class interfaces[] = clazz.getInterfaces();
String data = " \n\n\n---------------------class.info -------------------\n\n";
data += "package = " + clazz.getPackage()
+ "\nname = " + clazz.getName()
+ "\ntypeName = " + clazz.getTypeName()
+ "\nsimpleName = " + clazz.getSimpleName()
+ "\nCanonicalName = " + clazz.getCanonicalName()
+ "\nextends = " + supper.getCanonicalName()
+ "\nimplements [ " + interfaces.length + " ] = ";
for (int i = ; i < interfaces.length; ++i){
Class intfc = interfaces[i];
data += intfc.getCanonicalName() + ( i < interfaces.length - ? "," : "") ;
}
Log.e("ReflectUtil", data + "\n\n\n"); Constructor[] cons = clazz.getDeclaredConstructors();
data = " \n\n\n---------------------所有构造方法 [" + cons.length + "]-------------------\n\n"; for (Constructor constructor : cons){
data += getModifier(constructor.getModifiers()) + "\t" + constructor.getName() + "( ";
Parameter parameters[] = constructor.getParameters();
for (int i = ;i < parameters.length;++i){
Parameter parameter = parameters[i];
data += parameter.getType().getSimpleName() + (i < parameters.length - ? "," : "");
}
data += " )\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); cons = clazz.getConstructors();
data = " \n\n\n---------------------公开构造方法 [" + cons.length + "]-------------------\n\n";
for (Constructor constructor : cons){
data += getModifier(constructor.getModifiers()) + "\t" + constructor.getName() + "( ";
Parameter parameters[] = constructor.getParameters();
for (int i = ;i < parameters.length;++i){
Parameter parameter = parameters[i];
data += parameter.getType().getSimpleName() + (i < parameters.length - ? "," : "");
}
data += " )\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); Method[] methods = clazz.getDeclaredMethods();
data = " \n\n\n---------------------类方法(不含基类) [" + methods.length + "]-------------------\n\n";
for (Method method : methods){
data += getModifier(method.getModifiers()) + "\t" + method.getName() + "( " ;
Parameter parameters[] = method.getParameters();
for (int i = ;i < parameters.length;++i){
Parameter parameter = parameters[i];
data += parameter.getType().getSimpleName() + (i < parameters.length - ? "," : "");
}
data += " )\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); methods = clazz.getMethods();
data = " \n\n\n---------------------类方法(含基类) [" + methods.length + "]-------------------\n\n";
for (Method method : methods){
data += getModifier(method.getModifiers()) + "\t" + method.getName() + "( ";
Parameter parameters[] = method.getParameters();
for (int i = ;i < parameters.length;++i){
Parameter parameter = parameters[i];
data += parameter.getType().getSimpleName() + (i < parameters.length - ? "," : "");
}
data += " )\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); Field[] fields = clazz.getFields();
data = " \n\n\n---------------------类公开属性(含基类) [" + fields.length + "]-------------------\n\n";
for (Field field : fields){
data += getModifier(field.getModifiers()) + "\t" + field.getType().getSimpleName() + "\t" + field.getName() ;
data += "\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); fields = clazz.getDeclaredFields();
data = " \n\n\n---------------------类定义的属性(不含基类) [" + fields.length + "]-------------------\n\n";
for (Field field : fields){
data += getModifier(field.getModifiers()) + "\t" + field.getType().getSimpleName() + "\t" + field.getName() ;
data += "\n";
}
Log.e("ReflectUtil", data + "\n\n\n"); Log.e("ReflectUtil", " printAllMethods : ==========-------=========== =======\n\n\n" );
}
}
ReflectUtil

java 反向工具类的更多相关文章

  1. Java Properties工具类详解

    1.Java Properties工具类位于java.util.Properties,该工具类的使用极其简单方便.首先该类是继承自 Hashtable<Object,Object> 这就奠 ...

  2. Java json工具类,jackson工具类,ObjectMapper工具类

    Java json工具类,jackson工具类,ObjectMapper工具类 >>>>>>>>>>>>>>> ...

  3. Java日期工具类,Java时间工具类,Java时间格式化

    Java日期工具类,Java时间工具类,Java时间格式化 >>>>>>>>>>>>>>>>>&g ...

  4. Java并发工具类 - CountDownLatch

    Java并发工具类 - CountDownLatch 1.简介 CountDownLatch是Java1.5之后引入的Java并发工具类,放在java.util.concurrent包下面 http: ...

  5. MinerUtil.java 爬虫工具类

    MinerUtil.java 爬虫工具类 package com.iteye.injavawetrust.miner; import java.io.File; import java.io.File ...

  6. MinerDB.java 数据库工具类

    MinerDB.java 数据库工具类 package com.iteye.injavawetrust.miner; import java.sql.Connection; import java.s ...

  7. 小记Java时间工具类

    小记Java时间工具类 废话不多说,这里主要记录以下几个工具 两个时间只差(Data) 获取时间的格式 格式化时间 返回String 两个时间只差(String) 获取两个时间之间的日期.月份.年份 ...

  8. Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie

    Java Cookie工具类,Java CookieUtils 工具类,Java如何增加Cookie >>>>>>>>>>>>& ...

  9. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

随机推荐

  1. Boost源代码学习---weak_ptr.hpp

    weak_ptr是辅助shared_ptr的智能指针. 就像它的名字一样.是个"弱"指针:仅有几个接口.仅能完毕非常少工作.它能够从一个shared_ptr或weak_ptr对象构 ...

  2. [a,s]=[22,3]

    [a,s]=[22,3] Object.assign() - JavaScript | MDN https://developer.mozilla.org/en-US/docs/Web/JavaScr ...

  3. compile java sources

    Information:javac 1.8.0_91 was used to compile java sources D:\myjdk\bin\java "-javaagent:C:\Pr ...

  4. Struts错误信息回传

    <td height="20" align="center" class="loginMiddleDiv_loginInfo_window_wa ...

  5. Java中需要了解的点

    1.32位jvm.64位区别? 2.

  6. (linux)container_of()宏

      在学习Linux驱动的过程中,遇到一个宏叫做container_of. 该宏定义在include/linux/kernel.h中,首先来贴出它的代码: /**  * container_of - ...

  7. python selenium实现百度搜索

    1.环境 python2.7+selenium+phantomjs+linux 2.代码 #-*-coding:utf-8 -*- from selenium import webdriver fro ...

  8. Redis使用基本套路

    Redis的数据,通常都是来自于数据库. 存入Redis当中,可以快速的查询.不用每次都关联查询,然后其他处理什么的. 通常可以把一些,不经常变的数据存储其中. 避免数据变动,而Redis缓存数据不变 ...

  9. hdu 1711 Number Sequence 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1711 题目意思:给出一条有n个数的序列a[1],a[2],......,a[n],和一条有m 个数的序 ...

  10. hadoop-3.0.0-alpha4启动

    全部启动或者全部停止(注意:第一次启动需要先格式,以后就不需要格式了,不能多次格式化) 1.启动 [root@master sbin]# pwd /usr/hadoop/hadoop-3.0.0-al ...