@Nullable
    private Class<?> resolveClass() {
        if (this.type == EmptyType.INSTANCE) {
            return null;
        }
        if (this.type instanceof Class) {
            return (Class<?>) this.type;
        }
        if (this.type instanceof GenericArrayType) {
            Class<?> resolvedComponent = getComponentType().resolve();
            return (resolvedComponent != null ? Array.newInstance(resolvedComponent, 0).getClass() : null);
        }
        return resolveType().resolve();
    }
Resolve this type to a {link java.lang.Class}, returning the specified
{@code fallback} if the type cannot be resolved. This method will consider bounds
of {link TypeVariable TypeVariables} and {link WildcardType WildcardTypes} if
direct resolution fails; however, bounds of {@code Object.class} will be ignored.

@param fallback the fallback class to use if resolution fails
@return the resolved {link Class} or the {@code fallback}
see #resolve()
see #resolveGeneric(int...)
see #resolveGenerics()
analyzer/src/main/java/nl/basjes/parse/useragent/utils/springframework/core/ResolvableType.java