public static Object construct(Object something) throws Exception {
        if (something instanceof String) {
            return Class.forName((String)something).getConstructor().newInstance();
        } else if (something instanceof Map) {
            // keys are the class name, values are the parameters.
            for (Map.Entry<String, Object> entry : ((Map<String, Object>) something).entrySet()) {
                if (entry.getValue() instanceof Map) {
                    return constructByNamedParams(Class.forName(entry.getKey()), (Map)entry.getValue());
                } else if (entry.getValue() instanceof List) {
                    return constructByParameterizedConstructor(Class.forName(entry.getKey()), (List)entry.getValue());
                }
            }
        }
        return null;
    }
@Test
    public void classWithoutGivenParam_constructed_ignoresParam() throws Exception {
        Map<String, Object> params = new HashMap<>();
        params.put("hello", "howdy");
        params.put("name", "nick");
        Map<String, Object> constructMap = new HashMap<>();
        constructMap.put("com.networknt.service.GImpl", params);
        Assert.assertNotNull(ServiceUtil.construct(constructMap));
    }