src/share/classes/java/lang/invoke/MethodType.java

Print this page

        

@@ -31,10 +31,11 @@
 import java.lang.ref.ReferenceQueue;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
+import java.util.StringJoiner;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.ConcurrentHashMap;
 import sun.invoke.util.BytecodeDescriptor;
 import static java.lang.invoke.MethodHandleStatics.*;
 import sun.invoke.util.VerifyType;

@@ -715,19 +716,16 @@
      * Each type is represented by its
      * {@link java.lang.Class#getSimpleName simple name}.
      */
     @Override
     public String toString() {
-        StringBuilder sb = new StringBuilder();
-        sb.append("(");
+        StringJoiner sj = new StringJoiner(",", "(",
+                ")" + rtype.getSimpleName());
         for (int i = 0; i < ptypes.length; i++) {
-            if (i > 0)  sb.append(",");
-            sb.append(ptypes[i].getSimpleName());
+            sj.add(ptypes[i].getSimpleName());
         }
-        sb.append(")");
-        sb.append(rtype.getSimpleName());
-        return sb.toString();
+        return sj.toString();
     }
 
 
     /*non-public*/
     boolean isViewableAs(MethodType newType) {