public static Optional<Class<?>> findPowerSerialize(Class<?>[] parameterTypes) {

        if (ArrayUtils.isEmpty(parameterTypes)) {
            return Optional.empty();
        }

        for (Class<?> clz : parameterTypes) {
            final Class<?>[] interfaces = clz.getInterfaces();
            if (ArrayUtils.isEmpty(interfaces)) {
                continue;
            }

            if (PowerSerializable.class.isAssignableFrom(clz)) {
                return Optional.of(clz);
            }
        }
        return Optional.empty();
    }
@Test
    void findPowerSerialize() {

        Class<?>[] contains = {AlarmConfig.class, ServerScheduleJobReq.class};
        Class<?>[] notContains = {AlarmConfig.class};

        final Optional<Class<?>> notContainsResult = RemoteUtils.findPowerSerialize(notContains);
        log.info("[RemoteUtilsTest] notContainsResult: {}", notContainsResult);
        final Optional<Class<?>> containsResult = RemoteUtils.findPowerSerialize(contains);
        log.info("[RemoteUtilsTest] containsResult: {}", containsResult);

        assert !notContainsResult.isPresent();
        assert containsResult.isPresent();

    }