8222151: refactoring: enhancements to java.lang.Class::methodToString and java.lang.Class::getTypeName

Reviewed-by: darcy
This commit is contained in:
Sergei Tsypanov 2019-04-11 22:56:11 -04:00 committed by Vicente Romero
parent d03cf75344
commit 9d979eaf56

View File

@ -277,8 +277,7 @@ public final class Class<T> implements java.io.Serializable,
.collect(Collectors.joining(",", "<", ">"))); .collect(Collectors.joining(",", "<", ">")));
} }
for (int i = 0; i < arrayDepth; i++) if (arrayDepth > 0) sb.append("[]".repeat(arrayDepth));
sb.append("[]");
return sb.toString(); return sb.toString();
} }
@ -1589,12 +1588,7 @@ public final class Class<T> implements java.io.Serializable,
dimensions++; dimensions++;
cl = cl.getComponentType(); cl = cl.getComponentType();
} while (cl.isArray()); } while (cl.isArray());
StringBuilder sb = new StringBuilder(); return cl.getName() + "[]".repeat(dimensions);
sb.append(cl.getName());
for (int i = 0; i < dimensions; i++) {
sb.append("[]");
}
return sb.toString();
} catch (Throwable e) { /*FALLTHRU*/ } } catch (Throwable e) { /*FALLTHRU*/ }
} }
return getName(); return getName();
@ -3418,15 +3412,12 @@ public final class Class<T> implements java.io.Serializable,
* Helper method to get the method name from arguments. * Helper method to get the method name from arguments.
*/ */
private String methodToString(String name, Class<?>[] argTypes) { private String methodToString(String name, Class<?>[] argTypes) {
StringBuilder sb = new StringBuilder(); return getName() + '.' + name +
sb.append(getName() + "." + name + "("); ((argTypes == null || argTypes.length == 0) ?
if (argTypes != null) { "()" :
sb.append(Arrays.stream(argTypes) Arrays.stream(argTypes)
.map(c -> (c == null) ? "null" : c.getName()) .map(c -> c == null ? "null" : c.getName())
.collect(Collectors.joining(","))); .collect(Collectors.joining(",", "(", ")")));
}
sb.append(")");
return sb.toString();
} }
/** use serialVersionUID from JDK 1.1 for interoperability */ /** use serialVersionUID from JDK 1.1 for interoperability */