code: public T newInstance(InvocationHandler handler) throws InstantiationException, IllegalAccessException {
          T ret = newInstance();
          setInvocationHandler(ret, handler);
          return ret;
      }
docs: Create a new proxy, initialising it with the given invocation handler.
  
  @param handler the invocation handler to use
  @return the new proxy instance
  @throws IllegalAccessException if the constructor is not accessible
  @throws InstantiationException if instantiation failed due to an exception