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

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

        assertThat(typeVariable.toString())
                .contains(JavaTypeVariable.class.getSimpleName())
                .contains("NAME extends java.lang.String");
    }