
{filelink=940}
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.Invocable;
interface Calcul
{
int add(int a, int b);
int sous(int a, int b);
int multi(int a, int b);
int divi(int a, int b);
}
public class ExempleInvocation
{
public static void main(String[] args) throws Exception
{
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine moteur = manager.getEngineByName("js");
// Scripte Interne
moteur.eval("function add (a, b) {c = a + b; return c; }function sous (a, b) {c = a - b; return c; }function multi (a, b) {c = a * b; return c; }function divi (a, b) {c = a / b; return c; }");
Invocable jsInvoke = (Invocable) moteur;
Object resultat = jsInvoke.invokeFunction("add", new Object[] { 15, 36 });
System.out.println("Adition Interne: "+resultat);
// ExempleInvocation des Méthodes de l'interface 'Calcul'
Calcul calcul = jsInvoke.getInterface(Calcul.class);
int resultatInterf = calcul.add(15, 36);
System.out.println("Adition: "+resultatInterf);
resultatInterf = calcul.sous(36, 15);
System.out.println("Soustraction: "+ resultatInterf);
resultatInterf = calcul.multi(15, 36);
System.out.println("Multiplication: "+resultatInterf);
resultatInterf = calcul.divi(36, 15);
System.out.println("Division: "+ resultatInterf);
}
}
/*
Adition Interne: 51.0
Adition: 51
Soustraction: 21
Multiplication: 540
Division: 2
*/