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());
完毕.