code: private Object initiateByMethodName(Class<?> targetClass, String initMethodName, List<Object> objects)
          throws Exception {
          Method method = targetClass.getMethod(initMethodName, getClassList(objects));
          if (Modifier.isStatic(method.getModifiers())) {
              return method.invoke(null, objects.toArray());
          } else {
              return method.invoke(targetClass.newInstance(), objects.toArray());
          }
      }
docs: Tries to initiate an object of the target class through the given init method name with the given object as
  parameter.