getDeclaredMethod导致java.lang.NoSuchMethodException

时间:2016-03-22 07:42:23

标签: java reflection nosuchmethoderror

在我的一个课程中,我在下面的代码行中调用了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。有人建议解决方案。我错过了什么吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将Integer.class更改为int.classIntegerint的类型不同,并且找不到方法,因为您指定了错误的类型。