@Override
    public String toString() {
        String bounds = printExtendsClause() ? " extends " + joinTypeNames(upperBounds) : "";
        return getClass().getSimpleName() + '{' + getName() + bounds + '}';
    }
@Test
    public void toString_unbounded() {
        @SuppressWarnings("unused")
        class Unbounded<NAME> {
        }

        JavaTypeVariable<JavaClass> typeVariable = new ClassFileImporter().importClass(Unbounded.class).getTypeParameters().get(0);

        assertThat(typeVariable.toString())
                .contains(JavaTypeVariable.class.getSimpleName())
                .contains("NAME")
                .doesNotContain("extends");
    }