private String getTypeDescription(ResolvedType type, boolean simpleClassNames) {
        Class<?> erasedType = type.getErasedType();
        String result = simpleClassNames ? erasedType.getSimpleName() : erasedType.getTypeName();
        List<ResolvedType> typeParameters = type.getTypeParameters();
        if (!typeParameters.isEmpty()) {
            result += typeParameters.stream()
                    .map(parameterType -> this.getTypeDescription(parameterType, simpleClassNames))
                    .collect(Collectors.joining(", ", "<", ">"));
        }
        return result;
    }
Constructing a string that fully represents the given type (including possible type parameters and their actual types).

@param type the type to represent
@param simpleClassNames whether simple class names should be used (otherwise: full package names are included)
@return resulting string
jsonschema-generator/src/main/java/com/github/victools/jsonschema/generator/TypeContext.java