@SuppressWarnings("unchecked")
    private Object injectMap(Object obj, int i) {
        Map<String, Object> map;
        String key = keys[i];
        if (obj == null) {
            map = new LinkedHashMap<String, Object>();
        } else {
            map = (Map<String, Object>) obj;
        }

        if (model == Model.add) {
            if (i == keys.length - 1) {
                map.put(key, val);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                map.put(key, inject(null, i + 1));
                return map;
            }
        } else if (model == Model.del) {
            if (i == keys.length - 1) {
                map.remove(key);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                return map;
            }
        } else if (model == Model.cell) {
            if (i == keys.length - 1) {
                cellObj = map.get(key);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                return map;
            }
        }

        if (map.containsKey(key) && map.get(key) != null) {
            inject(map.get(key), i + 1);
        }
        return map;
    }
@SuppressWarnings("unchecked")
    private Object injectMap(Object obj, int i) {
        Map<String, Object> map;
        String key = keys[i];
        if (obj == null) {
            map = new LinkedHashMap<String, Object>();
        } else {
            map = (Map<String, Object>) obj;
        }

        if (model == Model.add) {
            if (i == keys.length - 1) {
                map.put(key, val);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                map.put(key, inject(null, i + 1));
                return map;
            }
        } else if (model == Model.del) {
            if (i == keys.length - 1) {
                map.remove(key);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                return map;
            }
        } else if (model == Model.cell) {
            if (i == keys.length - 1) {
                cellObj = map.get(key);
                return map;
            }
            if (!map.containsKey(key) || map.get(key) == null) {
                return map;
            }
        }

        if (map.containsKey(key) && map.get(key) != null) {
            inject(map.get(key), i + 1);
        }
        return map;
    }
@ SuppressWarnings ( "unchecked" ) private Object injectMap ( Object obj , int i ) { Map < String , Object > map ; String key = keys [ i ] ; if ( obj == null ) { map = new LinkedHashMap < String , Object > ( ) ; } else { map = ( Map < String , Object > ) obj ; } if ( model == Model . add ) { if ( i == keys . length - 1 ) { map . put ( key , val ) ; return map ; } if ( ! map . containsKey ( key ) || map . get ( key ) == null ) { map . put ( key , inject ( null , i + 1 ) ) ; return map ; } } else if ( model == Model . del ) { if ( i == keys . length - 1 ) { map . remove ( key ) ; return map ; } if ( ! map . containsKey ( key ) || map . get ( key ) == null ) { return map ; } } else if ( model == Model . cell ) { if ( i == keys . length - 1 ) { cellObj = map . get ( key ) ; return map ; } if ( ! map . containsKey ( key ) || map . get ( key ) == null ) { return map ; } } if ( map . containsKey ( key ) && map . get ( key ) != null ) { inject ( map . get ( key ) , i + 1 ) ; } return map ; }
注入MAP

@param obj
@param i
注入MAP