code: public static void invokeSetter(Object object, String setterName, Object[] args)
              throws NoSuchMethodException, IllegalAccessException, InvocationTargetException {
          int index = setterName.indexOf('.');
          if (index > 0) {
              String getterName = setterName.substring(0, index);
              Object o = invokeGetter(object, getterName);
              invokeSetter(o, setterName.substring(index + 1), args);
          } else {
              if (!setterName.startsWith("set")) {
                  setterName = "set" + setterName.substring(0, 1).toUpperCase(Locale.US) + setterName.substring(1);
              }
              invokeMethod(object, setterName, args);
          }
      }
docs: Sets the value of a bean property to an Object.
  
  @param object the bean to change
  @param setterName the property name or setter method name
  @param args use this arguments
  @throws NoSuchMethodException the no such method exception
  @throws IllegalAccessException the illegal access exception
  @throws InvocationTargetException the invocation target exception