java.lang.Class#toString
public String toString()
オブジェクトを文字列に変換します。文字列表現は、文字列「class」または「interface」の後にスペースが続き、その後に 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
interface キーワードを追加しません。getName()
メソッドを呼び出すだけです。
名前interface java.lang.Comparable
は t にあります。ステートメントSystem.out.println(t);
呼び出しの後toString()
。
デバッグすると、下の画像が表示されます