代码之家  ›  专栏  ›  技术社区  ›  Jaka Jančar

IllegalArgumentException:对象不是声明类的实例

  •  7
  • Jaka Jančar  · 技术社区  · 17 年前

    “foo”异常怎么可能是 抛出,但后续调用invoke()会抛出以下异常?

    if (method.getDeclaringClass() != object.getClass())
        throw new RuntimeException("foo");
    
    method.invoke(object);
    

    抛出异常:

    java.lang.IllegalArgumentException: object is not an instance of declaring class at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    1 回复  |  直到 17 年前
        1
  •  13
  •   Jaka Jančar    17 年前

    嗯。..The method.invoke() 电话不是直接打的。目标方法正在使用 invoke

    经验教训:处理 InvocationTargetException 与其他例外情况分开。