android 中使用Java反射Reflect,输出类中变量值,方便调试。

来源:互联网 发布:单片机lcd显示编程 编辑:程序博客网 时间:2024/05/17 05:59

Android开发中调试中,我们经常需要输出类的数据。
例如我们经常需要看一下,下列Data类的数据。

public class Data {private int id;private String name;private String url;private Bitmap bitmap;private Long t;private String status;public int getId() {return id;} public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}//... ... 节省版面}



代码如下:


工具类:

LogHelper.java

import java.lang.reflect.Method;public class Trace {public static void Reflect_Object(Object o, String classPath) {if (null == o || null == classPath) return;try {Class<?> userClass = Class.forName(classPath);// 加载类Method[] methods = userClass.getDeclaredMethods();// 获得类的方法集合// 遍历方法集合System.out.println("=== start traversing getXX methods====");for (int i = 0; i < methods.length; i++) {// 获取所有getXX()的返回值// methods[i].getName()方法返回方法名if (methods[i].getName().startsWith("get")) {Object object = methods[i].invoke(o);System.out.println(" " + methods[i].getName() + "() : " + object);}}System.out.println("=== end ====");} catch (Exception e) {e.printStackTrace();}}}



使用非常方便:

Data dat = new Data();//TODO dat 赋值,操作等。。... ....// 调用助手,输出信息Trace.Reflect_Object(dat, Data.class.getName());



完毕.




原创粉丝点击