Ich verwende Groovy Interpreter in Javaclass
, Ich versuche, eine Methode zu definieren und es zu nennen, hier ist mein Code:eine Methode innerhalb Groovy in Java verwendet Definieren
Binding binding = new Binding();
binding.setVariable("aa", 1);
binding.setVariable("bb", 2);
GroovyShell shell = new GroovyShell(binding);
shell.evaluate("int add(int a,int b){return (a+b)}");
int value =(int) shell.evaluate("add(aa,bb);");
System.out.println(value);
Und ich habe diesen Fehler habe:
Exception in thread "main" groovy.lang.MissingMethodException: No signature of method: Script2.add() is applicable for argument types: (java.lang.Integer, java.lang.Integer) values: [1, 2] Possible solutions: any(), wait(), run(), run(), find(), wait(long, int)
Bitte sagen Sie mir, wie Sie eine Funktion innerhalb groovy zu definieren und warum mein Code funktioniert nicht.
Mit freundlichen Grüßen,
Was passiert, wenn Sie den gesamten Groovy-Code in eine einzelne Zeichenfolge einfügen und einmal auswerten? Basierend auf dem Klassennamen 'Script2', denke ich, dass die Shell jeden 'evaluate'-Aufruf unabhängig behandelt. – chrylis
@chrylis Du hast Recht, das funktioniert, wenn ich das ganze Skript in einer "Shell" Auswertung auswerte, danke –