当以字符串形式给出方法名称时,如何调用 Java 方法?

2024-03-11

如果我有两个变量:

Object obj;
String methodName = "getName";

在不知道班级的情况下obj,我怎样才能调用由methodName on it?

被调用的方法没有参数,并且有一个String返回值。它是Java bean 的 getter.


从臀部开始编码,它会是这样的:

java.lang.reflect.Method method;
try {
  method = obj.getClass().getMethod(methodName, param1.class, param2.class, ..);
} catch (SecurityException e) { ... }
  catch (NoSuchMethodException e) { ... }

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

然后你通过调用调用该方法

try {
  method.invoke(obj, arg1, arg2,...);
} catch (IllegalArgumentException e) { ... }
  catch (IllegalAccessException e) { ... }
  catch (InvocationTargetException e) { ... }

再次,省略中的参数.invoke,如果你没有的话。但是是的。阅读Java反射 http://java.sun.com/docs/books/tutorial/reflect/index.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当以字符串形式给出方法名称时,如何调用 Java 方法? 的相关文章

  • 如何将未知列数的 ResultSet 映射到 List 并将其显示在 HTML 表中?

    我使用 Netbeans GlassFish 和 JavaDB 创建了一个数据库应用程序 现在我的控制器 Servlet 代码执行一些动态 SQL 查询并返回结果集 或者我可以更改 toString 现在 如何以表格格式显示返回的结果集 我
  • 在Java中将*s打印为三角形?

    我在 Java 课程中的作业是制作 3 个三角形 一份左对齐 一份右对齐 一份居中 我必须为什么类型的三角形制作一个菜单 然后输入需要多少行 三角形必须看起来像这样 到目前为止 我能够完成左对齐的三角形 但我似乎无法获得其他两个 我尝试用谷
  • ScheduledThreadPoolExecutor如何在特定时间运行任务?

    特别是 它是否像这样在内部实现了 while true 循环 while System currentTimeMillis lt timeToRunTask Thread sleep 1000 doTask From http grepco
  • 如何使用 Maven Failsafe 插件运行 JUnit 5 集成测试?

    当我运行命令时 Maven Failsafe 插件找不到我的 JUnit 5 集成测试mvn clean failsafe integration test 尽管它可以找到文件 我有junit jupiter api and junit j
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • 项目缺少所需的注释处理库

    我的 Eclipse IDE 突然在问题视图中显示 xxxx 项目缺少所需的注释处理库 xxxx M2 REPO 中的一些旧 jar 我用谷歌搜索 没有找到任何答案 为什么我的项目使用旧的 jar 以及错误来自哪里 To remove th
  • 当 JMS Prod 位于辅助 POJO 类中时,如何在事务中包含 JMS Producer

    简短的问题 有没有办法强制无状态 EJB 调用的 POJO 存在于 EJB 的上下文中 以便事务和资源注入可以在 POJO 中工作 具体来说 在我想要做的事情的上下文中 如何在 EJB 的事务中包含 POJO JMS 生产者 该生产者在调用
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 更改 JComboBox 中滚动条的大小

    有谁知道如何手动更改 jComboBox 中的滚动条大小 我已经尝试了一大堆东西 但没有任何效果 好吧 我明白了 您可以实现 PopUpMenuListener 并使用它 public void popupMenuWillBecomeVis
  • 如何使用 swagger-codegen-plugin (maven) 生成客户端代码?

    我需要使用 swagger codegen plugin for maven 在 eclipse 中生成服务器存根代码 你能帮忙怎么做吗 以及需要什么配置 在 pom xml 中 我找到了这个答案 您只需要像下面这样更改 pom xml 即
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 改变 Java 中凯撒移位的方向

    用户可以通过选择 1 向左或 2 向右移动字母来选择向左或向右移动 左边工作正常 右边不行 现在它显示了完全相同的循环 但我已经改变了所有 and 以不同的方式进行标记 最终我总是得到奇怪的字符 如何让程序将字符向相反方向移动 如果用户输入
  • 使用 HTTPServletRequestWrapper 包装请求参数

    我有一个可以验证 授权 REST 调用的过滤器 该过滤器需要访问请求参数 因此我为此编写了一个自定义 HTTPServletRequestWrapper import java util Collections import java ut
  • 配置jmxremote时无法正常停止tomcat

    我添加了一个jmxremotecatalina bat中的配置 set JAVA OPTS Dcom sun management jmxremote port 9004 Dcom sun management jmxremote ssl
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • Java:一个函数有多种返回类型...可以使用泛型吗?

    为了简单起见 我有一些程序 如下所示 public String fetchValueAsString String key public DateTime fetchValueAsDateTime String key 我想要类似的东西
  • 使用自定义比较器在 Java 中创建 SortedMap

    我想创建一个TreeMap在 Java 中具有自定义排序顺序 排序后的键是字符串 需要根据第二个字符进行排序 这些值也是字符串 示例地图 Za FOO Ab Bar 您可以像这样使用自定义比较器 Comparator
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外
  • 将数组值导出到 csv 文件 java

    我只需要帮助将数组元素导出到 csv 文件 我不知道我的代码有什么问题 任何帮助将不胜感激 谢谢 for int index 0 index lt cols length index FileWriter fw new FileWriter

随机推荐

  • 我可以在本地主机环境上测试 shibboleth IdP 和 SP 吗?

    我可以在本地主机环境上测试 shibboleth IdP 和 SP 吗 我只有一台电脑 Win7 Yes你当然可以 在该计算机中下载并安装 SP 和 idP 配置两者的元数据以与本地主机通信 或者为了更好地轻松使用 SP 和 idP 的两个
  • 如何在 Visual Studio 2019 中自动添加分号到行尾

    我的问题类似于如何在 Visual Studio 代码中在行尾添加分号 https stackoverflow com questions 30118344 how to add semicolon to the end of the li
  • 如何以编程方式设置或清除 32BIT 标志?

    编译时 我总是将其设置为 Any CPU 然而 有些客户没有所需二进制文件的 64 位版本 即使在 x64 系统上运行也是如此 在这些情况下 我要求他们使用 corflags exe 32BIT 选项修改我的二进制文件 http msdn
  • 在 Racket 源代码中选择学生语言

    我正在尝试为 DrRacket 编写一个源文件 指定其中一种语言如何设计教学语言的程序 see 球拍文档 http docs racket lang org drracket htdp langs html 我知道我可以在 DrRacket
  • Android 上符合 OpenGL-ES 2.0 所需的最小纹理大小?

    某个硬件是否需要支持最小纹理尺寸才能符合 OpenGL ES 2 0 规范 GL MAX TEXTURE SIZE 值必须至少为 1024 或 2048 或类似的值 我想知道这一点的原因是因为我正在研究使用着色器的东西 因此必须是 Open
  • 通过 Selenium Grid 运行 Selenium IDE 测试

    首先我应该说 我感到遗憾和痛苦noob 但我正在努力改变这一点 我不懂任何编程语言 但通过做足够的研究来完成我需要完成的任何工作 从而成功地 让事情发生 不管怎样 我一直在使用 Selenium IDE 创建 Selenium 测试 但在通
  • MySQL PHPMyAdmin 错误 #1062 - 键“PRIMARY”重复条目“0”

    现在我想添加一个主键id列 但它抛出错误 1062 密钥 PRIMARY 重复输入 0 我已经尝试过这个 向现有表添加主键 https stackoverflow com questions 11794659 add primary key
  • 选择用于实现分布式消息传递算法的编程语言

    基本上 我想实现以下算法并分析使用这些算法构建的系统在不同条件下的行为 八卦协议 多个paxos 一致的散列 我的兴趣在于这些算法 我基本上是在寻找一种编程语言 可以让我快速编写这些算法并深入理解这些算法 我应该选择哪种语言 Java Sc
  • 如何签署由第 3 方提供的发布 iphone 二进制文件?

    我收到了一家外包公司为我工作的公司开发的 iPhone 应用程序 我无权访问源代码 只能访问已编译的二进制文件 我希望能够使用我们的证书 配置信息等对其进行签名 以便我可以将其提交到应用程序商店 我该怎么做呢 我知道的存在codesign但
  • 如何切换到“更多”视图中的选项卡栏项目?

    我正在用 Objective C 为 Iphone Ipad 编写一个应用程序 我在标签栏的 更多 中有一些项目 我想切换到其中一种视图 我该怎么做 通常我会使用 selectedIndex 但它在 更多 选项卡上不起作用 要从更多屏幕选择
  • 使用 for 迭代 python 列表时如何指定类型/类名

    我知道 python 是动态类型语言 但想知道这是否可能 假设我有一个名为 people 的类 Person 的列表 people people append Person james for p in people p name p na
  • PHP(或其他):处理“不可能发生”的异常的策略

    考虑以下代码 class C throws InvalidArgumentException function classCreateInstance class if is string class throw new InvalidAr
  • mysql查询中的正则表达式

    我有 mysql 表值 例如 1 2 1 2 3 1 4 5 1 4 5 12 15 15 45 75 1 5 15 25 35 55 55 65 75 我想选择哪些行的编号为 5 而不是 15 25 或 35 我尝试过使用 LIKE 查询
  • 材质按钮 切换组单选

    我怎样才能强制材质按钮切换组表现得像 RadioGroup 一样 总是至少有一个选定的项目 环境setSingleSelection true 如果您单击组中的按钮两次 还可以增加不选择任何内容的可能性 这是我的代码
  • 暂时禁用 Lollipop CheckBox 上的动画

    我有一个 ListView 其中包含复选框的行 此 ListView 附加了过滤行为 它通过设置新数据来回收这些行 通过一个简单的setData 方法 随着过滤条件的变化 发生这种情况时 任何具有以下属性的回收行checked状态更改将更新
  • Hibernate 4 和 joda-time

    他们婚姻幸福吗 我使用的是最新版本的 hibernate 4 和 1 3 版本joda 时间休眠支持 http www joda org joda time hibernate 我也认为这是当前的最新版本 使用注释时 一切似乎都工作正常 按
  • 使用 Rspec 测试“创建后”

    我正在尝试使用 Rspec 测试 创建后 操作 代码如下 def valid attributes zone gt Flymgr Zone new countries gt Flymgr ZoneCountry first name gt
  • 无需正则表达式即可简单搜索和替换

    我有一个包含各种通配符的文件 我希望能够从 Bash shell 脚本中替换它 我有以下内容 该内容非常有效 直到其中一个变量包含正则表达式特有的字符 VERSION 1 0 perl i pe s VERSION VERSION g tx
  • 经典asp中的vbscript语法

    我有一个 vbscript 我想在其中运行一种asp 我在运行脚本时遇到问题 所以我想我需要一些帮助来确保 asp 知道它是 vvbscript 或其他东西 最后一个脚本是我运行时遇到问题的脚本 这是我所拥有的
  • 当以字符串形式给出方法名称时,如何调用 Java 方法?

    如果我有两个变量 Object obj String methodName getName 在不知道班级的情况下obj 我怎样才能调用由methodName on it 被调用的方法没有参数 并且有一个String返回值 它是Java be