public static CheckResult checkAtLeastOneExists(Config config, String... params) {
        if (params.length == 0) {
            return CheckResult.success();
        }

        List<String> missingParams = new LinkedList<>();
        for (String param : params) {
            if (!isValidParam(config, param)) {
                missingParams.add(param);
            }
        }

        if (missingParams.size() == params.length) {
            String errorMsg =
                    String.format(
                            "please specify at least one config of [%s] as non-empty",
                            String.join(",", missingParams));
            return CheckResult.error(errorMsg);
        } else {
            return CheckResult.success();
        }
    }
@Test
    public void testCheckAtLeastOneExists() {
        Config config = getConfig();
        CheckResult checkResult = checkAtLeastOneExists(config, "k0", "k3", "k4");
        Assertions.assertTrue(checkResult.isSuccess());

        String errorMsg = "please specify at least one config of [%s] as non-empty";
        checkResult = checkAtLeastOneExists(config, "k3", "k2");
        Assertions.assertEquals(String.format(errorMsg, "k3,k2"), checkResult.getMsg());
    }