SAF-Kotlin-log 是一个Android的日志框架,这几天我抽空重新更新了一下代码。
一. 打印几个Android常用的对象
1.1 Uri的打印
Uri uri = Uri.parse("http://www.java2s.com:8080/yourpath/fileName.htm?stove=10&path=32&id=4#harvic");
L.json(uri);
打印效果:
Uri.png
1.2 Bundle的打印
User u = new User();
u.userName = "tony";
u.password = "123456";
Bundle bundle = new Bundle();
bundle.putString("key1","this is key1");
bundle.putInt("key2",100);
bundle.putBoolean("key3",true);
bundle.putSerializable("key4",u);
L.json(bundle);
打印效果:
Bundle.png
目前,它默认支持JSON字符串、集合、Map、Bundle、Intent、Reference、Throwable、Uri等类型的打印,分别做了特别的格式化处理。
二. 使用责任链模式,改造打印对象的方法
在使用责任链模式之前,json()方法是这样的,需要使用when表达式来判断某个类应该对应哪个方法来打印对象。
/**
* 将任何对象转换成json字符串进行打印
*/
@JvmStatic
fun json(obj: Any?) {
if (obj == null) {
d("object is null")
return
}
when(obj) {
is String -> string2JSONString(obj)
is Map -> map2JSONString(obj)
is Collection -> collection2JS