java.lang.Class#toString
public String toString()
将对象转换为字符串。字符串表示是字符串“类”或“接口”,后跟一个空格,然后是由 getName 返回的格式的类的完全限定名称。如果此 Class 对象表示原始类型,则此方法返回原始类型的名称。如果此 Class 对象表示 void,则此方法返回“void”。
sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl#toString()
public String More ...toString() {
StringBuilder sb = new StringBuilder();
if (ownerType != null) {
if (ownerType instanceof Class)
sb.append(((Class)ownerType).getName());
else
sb.append(ownerType.toString());
sb.append(".");
if (ownerType instanceof ParameterizedTypeImpl) {
// Find simple name of nested type by removing the
// shared prefix with owner.
sb.append(rawType.getName().replace( ((ParameterizedTypeImpl)ownerType).rawType.getName() + "$",
""));
} else
sb.append(rawType.getName());
} else
sb.append(rawType.getName());
if (actualTypeArguments != null &&
actualTypeArguments.length > 0) {
sb.append("<");
boolean first = true;
for(Type t: actualTypeArguments) {
if (!first)
sb.append(", ");
if (t instanceof Class)
sb.append(((Class)t).getName());
else
sb.append(t.toString());
first = false;
}
sb.append(">");
}
return sb.toString();
}
调用toString()
方法后ParameterizedTypeImpl
不附加接口关键字。它只是调用getName()
方法。
名称interface java.lang.Comparable
在 t 中。语句System.out.println(t);
调用后toString()
。
当我调试时,您可以看到下图