代码之家  ›  专栏  ›  技术社区  ›  myst02

如何在另一个方法之后调用该方法?

  •  0
  • myst02  · 技术社区  · 6 年前

    假设我有以下代码:

    Method myMethod = Entry.class.getDeclaredMethod("get" + criteria);
    entries.get(index).getPort();
    

    我想用反射的方法“myMethod”替换getPort方法。如何在另一个方法之后调用反射的方法?(本例中为entries.get(index))

    这可能是一个非常简单的问题,但我到处都找遍了,没有找到答案。

    1 回复  |  直到 6 年前
        1
  •  2
  •   NAMS    6 年前

    From the documentation:

    反射提供了一种在类上调用方法的方法。通常,只有在不可能将类的实例强制转换为非反射代码中所需的类型时,才需要这样做。方法是用java调用的。lang.reflect。方法调用()。第一个参数是要在其上调用此特定方法的对象实例。(如果方法是静态的,则第一个参数应为null。)后续参数是方法的参数。如果基础方法引发异常,它将由java封装。lang.reflect。InvocationTargetException。可以使用异常链接机制的InvocationTargetException检索方法的原始异常。getCause()方法。

    在您的情况下:

    myMethod.invoke(entries.get(index), null);