2017-04-21 1 views
0

Wie übermittele ich Java-Methoden dynamisch von Excel-Blatt und rufe diese aus verschiedenen Java-Datei? Ist es möglich? Ich habe den folgenden Code, CtrlName und CtrlValue ich aus Excel-Blatt abgerufen. ctrlName = GenericFunctions.fg_wait ctrlValue = 5Wie übermittele ich Java-Methoden dynamisch aus Excel-Blatt und rufe diese aus verschiedenen Java-Datei?

public static void callFun(String ctrlName,String ctrlValue) { 
// TODO Auto-generated method stub 
    ctrlName(ctrlValue); 

In GenericFunctions java fie habe ich die folgenden:

public class GenericFunctions extends GenericFunctionsHelper 
{ 

    public static void fg_wait(int seconds) 
    { 
     sleep(seconds); 
    } 
} 

Antwort

0

Sie Reflexion verwenden könnte dieses Ziel zu erreichen. Sie erhalten Ausnahmen, wenn die Methodennamen in Ihrer Excel-Tabelle nicht mit den Methoden der Klasse übereinstimmen. Sie wollen auch bestimmte Ausnahmen fangen, ich bin nur einen generischen Fang der Einfachheit halber mit:

String methodName = "methodToCall"; // get this from your Excel spreadsheet. 
    Integer value = 17; // Get this from your Excel spreadsheet. 
    GenericClass classInstance = new GenericClass(); 

    try { 
     Method method = GenericClass.class.getDeclaredMethod(methodName, Integer.class); 
     method.invoke(classInstance, value); 
    } catch (Exception e) { 
     // Handle the exception. 
    } 

Wenn Sie diese Straße hinunter sind, du wirst the documentation for Java's reflection library

+0

untersuchen willst Was das ist ganzzahliger Wert = 17 ist gemeint mit ?? Könnten Sie bitte erklären? @RaceYouAnytime –

+0

Ich habe meinen Code wie unten geändert: 'public static void callFun (String ctrlType, String ctrlName, String ctrlValue) { \t \t \t String method = ctrlName; \t \t Zeichenfolge Wert = ctrlValue; \t \t GenericFunctions classInstance = new GenericFunctions(); \t \t versuchen { \t \t Methode method = GenericFunctions.class.getDeclaredMethod (methodName, String.class); \t \t method.invoke (Klasseninstanz, Wert); \t \t} catch (Ausnahme e) { \t \t \t System.err.println (e); \t \t}} ' Ich erhalte "java.lang.NoSuchMethodException: GenericFunctions.fg_wait (java.lang.String)" Error..Please –

+0

@GopinathRavi unterstützen sind Sie sicher, dass Verfahren auf GenericFunctions vorhanden ist, und nimmt einen String als Eingabe? – RaceYouAnytime

Verwandte Themen