首页 > 解决方案 > 在运行时使用一些字符串调用方法

问题描述

我不熟悉这些,我需要一个解决方案或想法我该怎么做

我有以下代码:

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等等。

标签: java

解决方案


您可以调用如下代码的方法:

try {
Method method = emRequestResponse.getDeclaredMethod("method name", parameterTypes);
method.invoke(objectToInvokeOn, params);
} catch(Exception ex) {
System.out.println(ex.toString());
}

推荐阅读