Skip to content

Commit eb9c9ab

Browse files
committed
update bug
1 parent 41e5ee0 commit eb9c9ab

File tree

1 file changed

+30
-28
lines changed

1 file changed

+30
-28
lines changed

utils/src/main/java/com/haoge/easyandroid/easy/EasyFormatter.kt

+30-28
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import org.json.JSONObject
2121
import java.io.StringReader
2222
import java.io.StringWriter
2323
import java.lang.reflect.Modifier
24-
import java.util.*
2524
import javax.xml.transform.OutputKeys
2625
import javax.xml.transform.TransformerException
2726
import javax.xml.transform.TransformerFactory
@@ -38,10 +37,12 @@ class EasyFormatter private constructor(private val builder: Builder) {
3837
private val indent = " "
3938
private val list = mutableListOf<Any>()// 用于临时存放当前已被解析的类。防止出现循环引用导致栈溢出
4039

41-
fun formatWithArgs(message: String, vararg args:Any):String {
40+
fun formatWithArgs(message: String, vararg args: Any): String {
4241
val array = arrayOfNulls<String>(args.size)
4342
args.forEachIndexed { index, any -> array[index] = format(any) }
44-
return String.format("$message %s", *array)
43+
return if (array.filterNotNull().isEmpty()) {
44+
message
45+
} else String.format("$message %s", *array)
4546
}
4647

4748
/**
@@ -101,7 +102,7 @@ class EasyFormatter private constructor(private val builder: Builder) {
101102
return StringBuilder(data)
102103
}
103104

104-
private fun formatXML(data:String):StringBuilder {
105+
private fun formatXML(data: String): StringBuilder {
105106
return try {
106107
val xmlInput = StreamSource(StringReader(data))
107108
val xmlOutput = StreamResult(StringWriter())
@@ -131,7 +132,7 @@ class EasyFormatter private constructor(private val builder: Builder) {
131132
val length = array.length()
132133
val isFlat = isFlat(builder.maxArraySize, length)
133134

134-
for (index in 0..(length - 1)) {
135+
for (index in 0 until length) {
135136
val sub = StringBuilder()
136137
if (!isFlat) {
137138
result.append("\n")
@@ -145,7 +146,7 @@ class EasyFormatter private constructor(private val builder: Builder) {
145146
if (!isFlat) {
146147
result.append("\n")
147148
}
148-
} catch (e:Exception) {
149+
} catch (e: Exception) {
149150
return StringBuilder(data)
150151
}
151152
result.append("]")
@@ -178,14 +179,14 @@ class EasyFormatter private constructor(private val builder: Builder) {
178179
if (!isFlat) {
179180
result.append("\n")
180181
}
181-
} catch (e:Exception) {
182+
} catch (e: Exception) {
182183
return StringBuilder(data)
183184
}
184185
result.append("}")
185186
return result
186187
}
187188

188-
private fun isFlat(maxSize:Int, length:Int):Boolean {
189+
private fun isFlat(maxSize: Int, length: Int): Boolean {
189190
return when {
190191
maxSize < 0 -> false
191192
length <= maxSize -> false
@@ -219,23 +220,22 @@ class EasyFormatter private constructor(private val builder: Builder) {
219220
}
220221

221222

223+
private fun formatAny(any: Any?): StringBuilder =
224+
when (any) {
225+
null -> StringBuilder()
226+
is Collection<*> -> checkIfFormatted(any) { return@checkIfFormatted formatCollection(any) }
227+
is Map<*, *> -> checkIfFormatted(any) { return@checkIfFormatted formatMap(any) }
228+
is Array<*> -> checkIfFormatted(any) { return@checkIfFormatted formatCollection(listOf(*any)) }
229+
is String -> formatString(any)
230+
is Throwable -> formatException(any)
231+
is Int, is Boolean, is Short, is Char, is Byte, is Long, is Float, is Double
232+
-> StringBuilder(any.toString())
233+
else -> checkIfFormatted(any) { return@checkIfFormatted formatOther(any) }
234+
}
222235

223-
private fun formatAny(any:Any?):StringBuilder =
224-
when(any) {
225-
null -> StringBuilder()
226-
is Collection<*> -> checkIfFormatted(any) {return@checkIfFormatted formatCollection(any)}
227-
is Map<*, *> -> checkIfFormatted(any) {return@checkIfFormatted formatMap(any)}
228-
is Array<*> -> checkIfFormatted(any) {return@checkIfFormatted formatCollection(Arrays.asList(*any))}
229-
is String -> formatString(any)
230-
is Throwable -> formatException(any)
231-
is Int, is Boolean, is Short, is Char, is Byte, is Long, is Float, is Double
232-
-> StringBuilder(any.toString())
233-
else -> checkIfFormatted(any) {return@checkIfFormatted formatOther(any)}
234-
}
235-
236-
private fun appendIterator(container:StringBuilder, /*数据存储容器*/
237-
iterator:Iterator<*>,
238-
isFlat:Boolean) {
236+
private fun appendIterator(container: StringBuilder, /*数据存储容器*/
237+
iterator: Iterator<*>,
238+
isFlat: Boolean) {
239239
var hasNext = iterator.hasNext()
240240
while (hasNext) {
241241
if (!isFlat) {
@@ -305,7 +305,7 @@ class EasyFormatter private constructor(private val builder: Builder) {
305305
scanFields(any, clazz.superclass, container)
306306
}
307307

308-
private fun checkIfFormatted(any:Any, invoke:()-> StringBuilder):StringBuilder {
308+
private fun checkIfFormatted(any: Any, invoke: () -> StringBuilder): StringBuilder {
309309
return if (list.contains(any)) {
310310
StringBuilder("{(circle ref):${any.javaClass.simpleName}}")
311311
} else {
@@ -329,15 +329,17 @@ class EasyFormatter private constructor(private val builder: Builder) {
329329
/**
330330
* 最大行数,当格式化后的数据行数超过此数量后,将对超出部分数据进行平铺展示
331331
*/
332-
var maxLines:Int = -1
332+
var maxLines: Int = -1
333+
333334
/**
334335
* 最大Array尺寸,当Array(包括List/Set/Array/JSONArray)的长度超过此数量限制时:数据以平铺模式展示。
335336
*/
336-
var maxArraySize:Int = -1
337+
var maxArraySize: Int = -1
338+
337339
/**
338340
* 最大Map尺寸,当Map(包括Map/JSONObject/Bean)的长度超过此数量限制时:数据以平铺模式展示
339341
*/
340-
var maxMapSize:Int = -1
342+
var maxMapSize: Int = -1
341343

342344
fun build(): EasyFormatter {
343345
return EasyFormatter(this)

0 commit comments

Comments
 (0)