private BoundedType boundsOf(TypeVariable<?> typeParameter) {
        if (typeParameter.getBounds()[0] instanceof TypeVariable) {
            return boundsOf((TypeVariable<?>) typeParameter.getBounds()[0]);
        }
        return new TypeVarBoundedType(typeParameter);
    }
private BoundedType boundsOf ( TypeVariable < ? > typeParameter ) { if ( typeParameter . getBounds ( ) [ 0 ] instanceof TypeVariable ) { return boundsOf ( ( TypeVariable < ? > ) typeParameter . getBounds ( ) [ 0 ] ) ; } return new TypeVarBoundedType ( typeParameter ) ; }
@param typeParameter The TypeVariable parameter
@return A {@link BoundedType} for easy bound information, if first bound is a TypeVariable
then retrieve BoundedType of this TypeVariable