@SuppressWarnings("unchecked")
    public static <T> T get(Map<String, ?> map, String... nestedKeys) {
        Map<String, ?> tmp = map;
        for (int i = 0; i < nestedKeys.length; i++) {
            String key = nestedKeys[i];
            if (tmp.containsKey(key)) {
                if (i == nestedKeys.length - 1) {
                    return (T) tmp.get(key);
                }
                if (tmp.get(key) instanceof Map) {
                    tmp = (Map<String, Object>) tmp.get(key);
                } else return null;
            } else return null;
        }
        return null;
    }