在接口上动态调用方法

时间:2014-10-24 15:56:52

标签: java

我是JAVA编程的新手,我正在尝试编写简单的MXBean servlet。 我想从RuntimeMXBean转储一些数据。

如您所知,这个界面有几种方法,fe: - getVmName - getVmVendor 还有更多..

我想创建一些带有几个方法名称的数组,然后使用foreach逐个调用并打印它的值。

不幸的是,这对我不起作用。 我试过obj.invoke,getmethod而且没什么 - 看起来它不像常规课或其他东西那样工作(对不起,我是菜鸟)

一些代码:

RuntimeMXBean rmx = ManagementFactory.getRuntimeMXBean();

如果我使用rmx.getVmVendor()一切都很好,但我不知道我怎么能用(也许还有别的东西?)在这个对象上调用带字符串名的方法(循环需要) 我正在使用最新的netbeans和glassfish。

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用反射API:

try {
      Method method = rmx.getClass().getDeclaredMethod("aMethodName");
      Object result = method.invoke(rmx);
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
       System.out.println(ex);
}