goja-core/src/main/java/goja/core/kits/reflect/Reflect.java
public static boolean isInterfaceImpl(Class thisClass, Class targetInterface) {
        for (Class x = thisClass; x != null; x = x.getSuperclass()) {
            Class[] interfaces = x.getInterfaces();
            for (Class i : interfaces) {
                if (i == targetInterface) {
                    return true;
                }
                if (isInterfaceImpl(i, targetInterface)) {
                    return true;
                }
            }
        }
        return false;
    }
public static boolean isInterfaceImpl(Class thisClass, Class targetInterface) {
        for (Class x = thisClass; x != null; x = x.getSuperclass()) {
            Class[] interfaces = x.getInterfaces();
            for (Class i : interfaces) {
                if (i == targetInterface) {
                    return true;
                }
                if (isInterfaceImpl(i, targetInterface)) {
                    return true;
                }
            }
        }
        return false;
    }
Returns <code>true</code> if provided class is interface implementation.