@Override
    public TypeElement visitWildcard(WildcardType t, Void p) {
        if (t.getExtendsBound() != null) {
            return visit(t.getExtendsBound());
        } else if (t.getSuperBound() != null) {
            return visit(t.getSuperBound());
        } else {
            return null;
        }

    }
{@code TypeExtractor} is a visitor implementation which extracts a concrete type from a generic {@link TypeElement}

@author tiwe
querydsl-apt/src/main/java/com/querydsl/apt/TypeExtractor.java