java - 在运行时使用一些字符串调用方法
问题描述
我不熟悉这些,我需要一个解决方案或想法我该怎么做
我有以下代码:
if (page.getId().equals("STEP_NAME_SUBMIT_OTP_FOR_TRANSACTION"))
emRequestResponse.setTagElementList(agent.getHeader().getTagElementList().getSTEP_NAME_SUBMIT_OTP_FOR_TRANSACTION());
else if (page.getId().equals("STEP_NAME_SUBMIT_CAPTCHA_FOR_LOGIN"))
emRequestResponse.setTagElementList(agent.getHeader().getTagElementList().getSTEP_NAME_SUBMIT_CAPTCHA_FOR_LOGIN());
我需要一种更好的方法在运行时根据 id 调用方法,所以如果名称是STEP_NAME_SUBMIT_OTP_FOR_TRANSACTION
我需要调用方法getSTEP_NAME_SUBMIT_OTP_FOR_TRANSACTION
等等。
解决方案
您可以调用如下代码的方法:
try {
Method method = emRequestResponse.getDeclaredMethod("method name", parameterTypes);
method.invoke(objectToInvokeOn, params);
} catch(Exception ex) {
System.out.println(ex.toString());
}
推荐阅读
- delphi - 如何将 SQL 查询中的项目添加到 TListView
- angular - Angular 不理解包含 index.html 的 URL#
- lisp - 在 Common Lisp 中构建动态 COND 子句
- javascript - Mongo查询带有日期的json对象
- c# - 是否可以在代码中访问 Visual Studio 构建事件设置?[C#]
- react-native - 使用 TabNavigator 时如何跳转到另一个屏幕?
- swift - Swift 4 Date 格式化后为零
- ios - 恢复非消耗性应用程序购买的Swift问题
- c# - SqlConnection.OpenAsync 问题
- php - 在codeigniter视图中循环数据时未定义的变量