导致 java.lang.NoSuchMethodException 的 getDeclaredMethod

getDeclaredMethod leading to java.lang.NoSuchMethodException

在我的一个 classes 中,我在下面的代码行中调用了 BLH 的 preOTPOperations class

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 class 我有如下的 preOTPO 操作。

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

    //some code goes here

}

尽管在 BLH class 中使用 public 访问说明符进行了 preOTPOperations,但不确定为什么我会收到 NoSuchMethodException。有人好心地提出了解决方案。我错过了什么吗?提前致谢!

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