private Class<?> isCandidateCls(final Class<? extends Object> class1) {
        if (class1 == null) {
            return null;
        }
        if (isCandidateIface(class1)) {
            return class1;
        }
        for (final Class<?> iface : class1.getInterfaces()) {
            final Class<?> cc = isCandidateCls(iface);
            if (cc != null) {
                return cc;
            }
        }
        return isCandidateCls(class1.getSuperclass());
    }