code: private Class[] makeParameterTypes(Object owner, MetaMethod m) {
          Class[] newParameterTypes;
  
          if (owner instanceof Class && !m.isStatic()) {
              Class[] nativeParameterTypes = m.getNativeParameterTypes();
              newParameterTypes = new Class[nativeParameterTypes.length + 1];
  
              System.arraycopy(nativeParameterTypes, 0, newParameterTypes, 1, nativeParameterTypes.length);
              newParameterTypes[0] = (Class) owner;
          } else {
              newParameterTypes = m.getNativeParameterTypes();
          }
  
          return newParameterTypes;
      }
docs: /*
  Create a new array of parameter type.
  
  If the owner is a class instance(e.g. String) and the method is instance method,
  we expand the original array of parameter type by inserting the owner at the first place of the expanded array