]> source.dussan.org Git - poi.git/commitdiff
avoid string concats
authorPJ Fanning <fanningpj@apache.org>
Fri, 18 Dec 2020 00:17:50 +0000 (00:17 +0000)
committerPJ Fanning <fanningpj@apache.org>
Fri, 18 Dec 2020 00:17:50 +0000 (00:17 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1884581 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/util/POILogger.java

index 7a7e9ee135ef3acdd6ee2bc221290b710208a948..da4fbb2d1486290a633e3d5c4bd022b14af97a45 100644 (file)
@@ -96,17 +96,26 @@ public interface POILogger {
      */
     default void log(int level, Object... objs) {
         if (!check(level)) return;
-        StringBuilder sb = new StringBuilder(32);
         Throwable lastEx = null;
-        for (int i=0; i<objs.length; i++) {
-            if (i == objs.length-1 && objs[i] instanceof Throwable) {
-                lastEx = (Throwable)objs[i];
-            } else {
-                sb.append(objs[i]);
+        String msg;
+        if (objs.length == 0) {
+            msg = "";
+        } else if (objs.length == 1) {
+            if (objs[0] instanceof Throwable) {
+                lastEx = (Throwable)objs[0];
             }
+            msg = objs[0].toString();
+        } else {
+            StringBuilder sb = new StringBuilder(32);
+            for (int i=0; i<objs.length; i++) {
+                if (i == objs.length-1 && objs[i] instanceof Throwable) {
+                    lastEx = (Throwable)objs[i];
+                } else {
+                    sb.append(objs[i]);
+                }
+            }
+            msg = sb.toString();
         }
-
-        String msg = sb.toString();
         // log forging escape
         msg = msg.replaceAll("[\r\n]+", " ");