提交 933ebc81 编写于 作者: B Blankj

see 01/08 log

上级 368926cc
......@@ -204,4 +204,21 @@ public final class JsonUtils {
return defaultValue;
}
}
public static String formatJson(final String json) {
return formatJson(json, 4);
}
public static String formatJson(final String json, final int indentSpaces) {
try {
if (json.startsWith("{")) {
return new JSONObject(json).toString(indentSpaces);
} else if (json.startsWith("[")) {
return new JSONArray(json).toString(indentSpaces);
}
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
}
......@@ -38,7 +38,9 @@ import java.lang.reflect.Type;
import java.net.UnknownHostException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.Formatter;
import java.util.Iterator;
......@@ -784,9 +786,7 @@ public final class LogUtils {
private static class LogFormatter {
static String object2String(Object object) {
if (object.getClass().isArray()) return object2Json(object);
if (object instanceof Collection) return object2Json(object);
if (object instanceof Map) return object2Json(object);
if (object.getClass().isArray()) return array2String(object);
if (object instanceof Throwable) return throwable2String((Throwable) object);
if (object instanceof Bundle) return bundle2String((Bundle) object);
if (object instanceof Intent) return intent2String((Intent) object);
......@@ -798,7 +798,7 @@ public final class LogUtils {
return formatJson(object.toString());
}
try {
return GSON.toJson(object);
return formatJson(GSON.toJson(object));
} catch (Throwable t) {
return object.toString();
}
......@@ -1021,6 +1021,29 @@ public final class LogUtils {
sb.append("NULL");
sb.append("}");
}
private static String array2String(Object object) {
if (object instanceof Object[]) {
return Arrays.deepToString((Object[]) object);
} else if (object instanceof boolean[]) {
return Arrays.toString((boolean[]) object);
} else if (object instanceof byte[]) {
return Arrays.toString((byte[]) object);
} else if (object instanceof char[]) {
return Arrays.toString((char[]) object);
} else if (object instanceof double[]) {
return Arrays.toString((double[]) object);
} else if (object instanceof float[]) {
return Arrays.toString((float[]) object);
} else if (object instanceof int[]) {
return Arrays.toString((int[]) object);
} else if (object instanceof long[]) {
return Arrays.toString((long[]) object);
} else if (object instanceof short[]) {
return Arrays.toString((short[]) object);
}
throw new IllegalArgumentException("Array has incompatible type: " + object.getClass());
}
}
private static <T> Class getTypeClassFromParadigm(final IFormatter<T> formatter) {
......
......@@ -7,6 +7,7 @@ import org.robolectric.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowLog;
import org.robolectric.shadows.ShadowLooper;
/**
* <pre>
......@@ -22,6 +23,8 @@ public class BaseTest {
public BaseTest() {
ShadowLog.stream = System.out;
ReflectUtils.reflect("com.blankj.utilcode.util.ThreadUtils$Deliver")
.field("MAIN_HANDLER", null);
Utils.init(RuntimeEnvironment.application);
}
......
......@@ -31,7 +31,7 @@ public class LogUtilsTest extends BaseTest {
private static final int[] ONE_D_ARRAY = new int[]{1, 2, 3};
private static final int[][] TWO_D_ARRAY = new int[][]{{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
private static final ArrayList<Object> LIST = new ArrayList<>();
private static final Map<String, String> MAP = new HashMap<>();
private static final Map<String, Object> MAP = new HashMap<>();
@Test
public void testV() {
......@@ -172,13 +172,11 @@ public class LogUtilsTest extends BaseTest {
LIST.add(new Application());
MAP.put("name", "AndroidUtilCode");
MAP.put("class", "LogUtils");
MAP.put("class", new Application());
LogUtils.d((Object) ONE_D_ARRAY);
LogUtils.d((Object) TWO_D_ARRAY);
LogUtils.d(formatJson(collection2String(LIST)));
LogUtils.d(LIST);
LogUtils.d(MAP);
LogUtils.d(array2String(TWO_D_ARRAY));
}
static String collection2String(Collection collection) {
......@@ -206,29 +204,6 @@ public class LogUtilsTest extends BaseTest {
return json;
}
static String array2String(Object object) {
if (object instanceof Object[]) {
return Arrays.deepToString((Object[]) object);
} else if (object instanceof boolean[]) {
return Arrays.toString((boolean[]) object);
} else if (object instanceof byte[]) {
return Arrays.toString((byte[]) object);
} else if (object instanceof char[]) {
return Arrays.toString((char[]) object);
} else if (object instanceof double[]) {
return Arrays.toString((double[]) object);
} else if (object instanceof float[]) {
return Arrays.toString((float[]) object);
} else if (object instanceof int[]) {
return Arrays.toString((int[]) object);
} else if (object instanceof long[]) {
return Arrays.toString((long[]) object);
} else if (object instanceof short[]) {
return Arrays.toString((short[]) object);
}
throw new IllegalArgumentException("Array has incompatible type: " + object.getClass());
}
static class Person {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册