导致java.lang.NoSuchMethodException的getDeclaredMethod

导致java.lang.NoSuchMethodException的getDeclaredMethod,java,reflection,nosuchmethoderror,Java,Reflection,Nosuchmethoderror,在我的一个类中,我在下面列出了调用BLH类的预处理操作的代码行 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; p

在我的一个类中,我在下面列出了调用BLH类的预处理操作的代码行

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});

不知道为什么我会得到NoSuchMethodException,尽管在BLH类中有带有公共访问说明符的preOTPOperations。有人好心地提出解决办法。我错过什么了吗?提前谢谢

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

public String preOTPOperations(String cardnumber, String mobileNumber, int bankid, COConfig coConfig){

    //some code goes here

}