[软件设计/软件工程] 当方法名称以字符串形式给出,如何调用 Java 方法?

[复制链接]
发表于 2022-5-3 11:52:10
问题
如果我有两个变量:
  1. Object obj;
  2. String methodName = "getName";
复制代码

如何在不知道 obj 类的情况下调用由 methodName 标识的方法?

被调用的方法没有参数并返回一个 String 。它是 Java bean 的吸气剂。

回答
粗略地从臀部编码:
  1. java.lang.reflect.Method method;
  2. try {
  3.   method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
  4. } catch (SecurityException e) { ... }
  5.   catch (NoSuchMethodException e) { ... }
复制代码

该参数标识了您需要的非常具体的方法(如果有多个重载可用,如果该方法没有参数,则只给出 methodName)。

然后通过调用
  1. try {
  2.   method.invoke(obj, arg1, arg2,...);
  3. } catch (IllegalArgumentException e) { ... }
  4.   catch (IllegalAccessException e) { ... }
  5.   catch (InvocationTargetException e) { ... }
复制代码

同样,如果没有参数,请省略 .invoke 中的参数。但是,是的。了解 Java 反射





上一篇:如何设置一些 Tkinter 小部件的边框颜色?
下一篇:递归删除,但排除特定目录树

使用道具 举报

Archiver|手机版|小黑屋|吾爱开源 |网站地图

Copyright 2011 - 2012 Lnqq.NET.All Rights Reserved( ICP备案粤ICP备14042591号-1粤ICP14042591号 )

关于本站 - 版权申明 - 侵删联系 - Ln Studio! - 广告联系

本站资源来自互联网,仅供用户测试使用,相关版权归原作者所有

快速回复 返回顶部 返回列表