abstract public Object invoke(Object obj, Object []args) throws Throwable;
abstract public Object invoke(Object obj, Object []args);
  abstract public Object invoke(Object obj, Object []args)    throws Throwable;