看到Logger可以打印json,当时就想能不能打印集合呢,现在通过学习了一些反射的东西,写了出来,仅供参考。
public static <E> void list(List<E> list) {
if (IS_DDEBUG) {
if (list == null || list.size() == 0) {
Logger.d("list为空");
} else {
Field[] allFields = null;
StringBuilder builder = new StringBuilder();
builder.append("此集合共有");
builder.append(list.size());
builder.append("条数据");
builder.append("\r\n");
for (int index = 0; index < list.size(); index++) {
E e = list.get(index);
if (index == 0) {
Class<?> cls = e.getClass();
allFields = cls.getDeclaredFields();
}
builder.append("第").append(String.valueOf(index + 1)).append("个\r\n");
builder.append("\t");
builder.append("{");
builder.append("\r\n");
for (Field field : allFields) {
//因为可能是private类型,故需要设置此项
field.setAccessible(true);
builder.append("\t");
builder.append("\t");
builder.append("\"");
builder.append(field.getName());
builder.append("\"");
builder.append(":");
try {
builder.append(field.get(e));
}
catch (IllegalAccessException e1) {
e1.printStackTrace();
}
builder.append("\r\n");
}
builder.append("\t");
builder.append("}");
builder.append("\r\n");
}
//对应的log日志输出方法,此处是用了Logger中的.d方法
d(String.valueOf(builder));
}
}
}
此工具方法只打印了一层,而未对第二层打印,也就是说其打印的结果当中可能会有如下:
"CREATOR":net.XXX.response.model.MediaInfo$1@705b0f6
但是已经满足了基本要求
PS:推荐使用Logger–>https://github.com/orhanobut/logger
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-10-08 04:33:04