我是 JAVA 编程的新手,我正在尝试编写简单的 MXBean servlet。 我想从 RuntimeMXBean 转储一些数据。
如您所知,此接口(interface)有几种方法,例如: - 获取虚拟机名称 - 获取VmVendor 还有更多..
我想创建一些具有几个方法名称的数组,然后使用 foreach 逐一调用并打印其值。
不幸的是,它对我不起作用。 我尝试了 obj.invoke、getmethod 但什么也没有 - 看起来它不像常规类或其他东西那样工作(抱歉,我是菜鸟)
一些代码:
RuntimeMXBean rmx = ManagementFactory.getRuntimeMXBean();
如果我使用 rmx.getVmVendor() 一切都很好,但我不知道如何使用(也许是其他东西?)调用此对象上带有字符串名称的方法(需要循环) 我正在使用最新的 netbeans 和 glassfish。
谢谢。
最佳答案
您可以使用反射 API:
try {
Method method = rmx.getClass().getDeclaredMethod("aMethodName");
Object result = method.invoke(rmx);
} catch (NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException ex) {
System.out.println(ex);
}
关于java - 动态调用接口(interface)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26551671/