java - 动态调用接口(interface)方法

标签 java

我是 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/

相关文章:

java - 从外部内部类封闭内部类的外部类实例引用

java - 无论选择 Appium Java Junit 进行测试,AWS 设备场都使用 TestNG 框架

C++ 中的 Javas Class<?> 等价物

java - 如何检查Linux中用户是否存在(JSch)

java - 在不定期检查 Activity 状态的情况下杀死线程

java - 有没有办法在没有 RBAC 的情况下获取集群中的所有 pod?

java - 如何使用坐标在 map android上查找位置

java - 如何从另一个类更新一个类中的变量

java - 使用 hibernate 的程序不会终止

java - Spring MVC 转换 Spring Rest Api