public ResolvableType[] getInterfaces() {
        Class<?> resolveD = resolve();
        if (resolveD == null) {
            return EMPTY_TYPES_ARRAY;
        }
        ResolvableType[] interfaceS = this.interfaces;
        if (interfaceS == null) {
            Type[] genericIfcs = resolveD.getGenericInterfaces();
            interfaceS = new ResolvableType[genericIfcs.length];
            for (int i = 0; i < genericIfcs.length; i++) {
                interfaceS[i] = forType(genericIfcs[i], this);
            }
            this.interfaces = interfaceS;
        }
        return interfaceS;
    }
Return a {link ResolvableType} array representing the direct interfaces
implemented by this type. If this type does not implement any interfaces an
empty array is returned.
<p>Note: The resulting {link ResolvableType} instances may not be {link Serializable}.

see #getSuperType()
analyzer/src/main/java/nl/basjes/parse/useragent/utils/springframework/core/ResolvableType.java