/** * 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. * * @see #getSuperType() */ public ResolvableType[] getInterfaces() { Class<?> resolved = resolve(); if (resolved == null || ObjectUtils.isEmpty(resolved.getGenericInterfaces())) { return EMPTY_TYPES_ARRAY; } ResolvableType[] interfaces = this.interfaces; if (interfaces == null) { interfaces = forTypes(SerializableTypeWrapper.forGenericInterfaces(resolved), asVariableResolver()); this.interfaces = interfaces; } return interfaces; }