< prev index next >
src/java.base/share/classes/java/lang/reflect/Executable.java
Print this page
*** 26,35 ****
--- 26,36 ----
package java.lang.reflect;
import java.lang.annotation.*;
import java.util.Map;
import java.util.Objects;
+ import java.util.StringJoiner;
import jdk.internal.misc.SharedSecrets;
import sun.reflect.annotation.AnnotationParser;
import sun.reflect.annotation.AnnotationSupport;
import sun.reflect.annotation.TypeAnnotationParser;
*** 84,102 ****
SharedSecrets.getJavaLangAccess().
getConstantPool(getDeclaringClass()),
getDeclaringClass());
}
- void separateWithCommas(Class<?>[] types, StringBuilder sb) {
- for (int j = 0; j < types.length; j++) {
- sb.append(types[j].getTypeName());
- if (j < (types.length - 1))
- sb.append(",");
- }
-
- }
-
void printModifiersIfNonzero(StringBuilder sb, int mask, boolean isDefault) {
int mod = getModifiers() & mask;
if (mod != 0 && !isDefault) {
sb.append(Modifier.toString(mod)).append(' ');
--- 85,94 ----
*** 119,135 ****
try {
StringBuilder sb = new StringBuilder();
printModifiersIfNonzero(sb, modifierMask, isDefault);
specificToStringHeader(sb);
- sb.append('(');
- separateWithCommas(parameterTypes, sb);
- sb.append(')');
if (exceptionTypes.length > 0) {
! sb.append(" throws ");
! separateWithCommas(exceptionTypes, sb);
}
return sb.toString();
} catch (Exception e) {
return "<" + e + ">";
}
--- 111,133 ----
try {
StringBuilder sb = new StringBuilder();
printModifiersIfNonzero(sb, modifierMask, isDefault);
specificToStringHeader(sb);
+ StringJoiner sj = new StringJoiner(",", "(", ")");
+ sj.setEmptyValue("()");
+ for (Class<?> parameterType : parameterTypes) {
+ sj.add(parameterType.getTypeName());
+ }
+ sb.append(sj.toString());
if (exceptionTypes.length > 0) {
! StringJoiner joiner = new StringJoiner(",", "throws ", "");
! for (Class<?> exceptionType : exceptionTypes) {
! joiner.add(exceptionType.getTypeName());
! }
! sb.append(joiner.toString());
}
return sb.toString();
} catch (Exception e) {
return "<" + e + ">";
}
*** 147,192 ****
printModifiersIfNonzero(sb, modifierMask, isDefault);
TypeVariable<?>[] typeparms = getTypeParameters();
if (typeparms.length > 0) {
! boolean first = true;
! sb.append('<');
for(TypeVariable<?> typeparm: typeparms) {
! if (!first)
! sb.append(',');
! // Class objects can't occur here; no need to test
! // and call Class.getName().
! sb.append(typeparm.toString());
! first = false;
}
! sb.append("> ");
}
specificToGenericStringHeader(sb);
! sb.append('(');
Type[] params = getGenericParameterTypes();
for (int j = 0; j < params.length; j++) {
String param = params[j].getTypeName();
if (isVarArgs() && (j == params.length - 1)) // replace T[] with T...
param = param.replaceFirst("\\[\\]$", "...");
! sb.append(param);
! if (j < (params.length - 1))
! sb.append(',');
! }
! sb.append(')');
! Type[] exceptions = getGenericExceptionTypes();
! if (exceptions.length > 0) {
! sb.append(" throws ");
! for (int k = 0; k < exceptions.length; k++) {
! sb.append((exceptions[k] instanceof Class)?
! ((Class)exceptions[k]).getName():
! exceptions[k].toString());
! if (k < (exceptions.length - 1))
! sb.append(',');
}
}
return sb.toString();
} catch (Exception e) {
return "<" + e + ">";
}
--- 145,182 ----
printModifiersIfNonzero(sb, modifierMask, isDefault);
TypeVariable<?>[] typeparms = getTypeParameters();
if (typeparms.length > 0) {
! StringJoiner sj = new StringJoiner(",", "<", "> ");
for(TypeVariable<?> typeparm: typeparms) {
! sj.add(typeparm.getTypeName());
}
! sb.append(sj.toString());
}
specificToGenericStringHeader(sb);
! StringJoiner sj = new StringJoiner(",", "(", ")");
! sj.setEmptyValue("()");
!
Type[] params = getGenericParameterTypes();
for (int j = 0; j < params.length; j++) {
String param = params[j].getTypeName();
if (isVarArgs() && (j == params.length - 1)) // replace T[] with T...
param = param.replaceFirst("\\[\\]$", "...");
! sj.add(param);
! }
! sb.append(sj.toString());
!
! Type[] exceptionTypes = getGenericExceptionTypes();
! if (exceptionTypes.length > 0) {
! StringJoiner joiner = new StringJoiner(",", " throws ", "");
! for (Type exceptionType : exceptionTypes) {
! joiner.add(exceptionType.getTypeName());
}
+ sb.append(joiner.toString());
}
return sb.toString();
} catch (Exception e) {
return "<" + e + ">";
}
< prev index next >