public static <T> T getOrDefaultValue(String primaryKey, T defaultValue) {
        Object val = CFG.get(primaryKey);
        if (val == null) {
            return defaultValue;
        } else {
            Class<?> type = defaultValue == null ? null : defaultValue.getClass();
            return (T) CompatibleTypeUtils.convert(val, type);
        }
    }
@Test
    public void getOrDefaultValue() {
        boolean xxx = RpcConfigs.getOrDefaultValue("xxx", true);
        Assert.assertTrue(xxx);
        RpcConfigs.putValue("xxx", "false");
        try {
            xxx = RpcConfigs.getOrDefaultValue("xxx", true);
            Assert.assertFalse(xxx);
        } finally {
            RpcConfigs.removeValue("xxx");
        }
        xxx = RpcConfigs.getOrDefaultValue("xxx", true);
        Assert.assertTrue(xxx);

        int yyy = RpcConfigs.getOrDefaultValue("yyy", 111);
        Assert.assertTrue(yyy == 111);
        RpcConfigs.putValue("yyy", "123");
        try {
            yyy = RpcConfigs.getOrDefaultValue("yyy", 111);
            Assert.assertTrue(yyy == 123);
        } finally {
            RpcConfigs.removeValue("yyy");
        }
        yyy = RpcConfigs.getOrDefaultValue("yyy", 123);
        Assert.assertTrue(yyy == 123);
    }