在我的一个课程中,我在下面的代码行中调用了BLH类的preOTPOperations
Class<?> clazz = Class.forName("com.test.BLH");
Object obj = clazz.newInstance();
Class<?>[] paramTypes = new Class[4];
paramTypes[0]=String.class;
paramTypes[1]=String.class;
paramTypes[2]=Integer.class;
paramTypes[3]=COConfig.class;
Method m = clazz.getDeclaredMethod("preOTPOperations", paramTypes);
String responseMessage = (String) m.invoke(obj, new Object[]{cardnumber, null, bankId, myConfig});
但是,当我尝试使用invoke()调用BLH的preOTPOperations方法时,我得到了java.lang.NoSuchMethodException。
在BLH课程中,我有如下的preOTPOperations。
public String preOTPOperations(String cardnumber, String mobileNumber, int bankid, COConfig coConfig){
//some code goes here
}
我不知道为什么我得到NoSuchMethodException,尽管在具有公共访问说明符的BLH类中有preOTPOperations。有人建议解决方案。我错过了什么吗?提前谢谢!
答案 0 :(得分:1)
您需要将Integer.class
更改为int.class
。 Integer
和int
的类型不同,并且找不到方法,因为您指定了错误的类型。