@SuppressWarnings("unchecked")
    @Override
    public R visitUnknown(TypeMirror t, P p) {
        if (intersectionTypeClass != null && intersectionTypeClass.isInstance(t)) {
            try {
                List<TypeMirror> bounds = (List<TypeMirror>) getBoundsMethod.invoke(t);
                return bounds.get(0).accept(this, p);
            } catch (IllegalAccessException | InvocationTargetException e) {
                throw new RuntimeException(e.getMessage(), e);
            }
        } else {
            return super.visitUnknown(t, p);
        }
    }
Converts Java 8 {@link javax.lang.model.type.IntersectionType IntersectionType} instances into their first bound when visiting

@param <R>
@param <P>
querydsl-apt/src/main/java/com/querydsl/apt/SimpleTypeVisitorAdapter.java