2016-03-22 2 views
1

In einer meiner Klassen führenden ich habe unter Codezeilen stellen die preOTPOperations von BLH Klasse zu nennengetDeclaredMethod zu java.lang.NoSuchMethodException

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

Aber ich bekomme java.lang.NoSuchMethodException, wenn ich versuche, Rufen Sie die preOTPOperations-Methode von BLH wie oben unter Verwendung von invoke() auf.

In BLH-Klasse habe ich preOTPOperations wie folgt.

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

    //some code goes here 

} 

nicht sicher, warum ich NoSuchMethodException bin immer trotz preOTPOperations in BLH Klasse mit offenem Zugang Spezifizierer. Jemand schlägt freundlicherweise die Lösung vor. Fehle ich etwas? Danke im Voraus!

Antwort

0

Sie müssen Integer.class zu int.class ändern. Integer und int sind nicht die gleichen Typen, und die Methode wird nicht gefunden, weil Sie den falschen Typ angeben.

+0

Danke! Es wogte. – Anita