code: public static void setByPath(
              Object target,
              Object value,
              List<String> path) {
  
          Object obj = target;
          Iterator<String> iter = path.iterator();
  
          while (iter.hasNext()) {
  
              String field = iter.next();
              if (iter.hasNext()) {
                  obj = digIn(obj, field);
              } else {
                  setValue(obj, trimType(field), value);
              }
  
          }
      }
docs: Sets the value of the attribute at the given path in the target object,
  creating any intermediate values (using the default constructor for the
  type) if need be.
  
  @param target the object to modify
  @param value the value to add
  @param path the path into the target object at which to add the value