Appeler des fonctions Java dans des expressions
Appeler des méthodes statiques Java
Pour appeler une méthode statique, spécifiez le nom de la classe, le nom de la méthode et tout argument requis comme suit : java:call(ClassName, MethodName, argsOfMethod...), où ClassName et MethodName sont des valeurs de chaînes de caractères et où les autres valeurs d'arguments peuvent être de n'importe quel type. Par exemple :
java:call("java.lang.Double", "compare", 3.1415d, 1.51d)
Cet exemple compare deux valeurs de type Double à l'aide de la méthode Java Double.compare().
Appeler des méthodes non statiques Java
Pour appeler une méthode non statique, créez une instance de la classe avec java:new en spécifiant le nom de la classe et les arguments du constructeur, comme suit : java:call(java:new(ClassName, argsOfConstructor), MethodName,argsOfMethod...), où ClassName et MethodName sont des valeurs de chaînes de caractères et où les autres valeurs d'arguments peuvent être de n'importe quel type. L'instance de la classe avec java:new doit être spécifiée comme premier argument de l'appel Java. Le deuxième argument doit être le nom de la méthode. Par exemple :
java:call(java:new("java.util.Random", 536815L), "nextInt", 100)
Cet exemple crée un objet Random avec une graine et appelle sa méthode nextInt.
- Vous ne pouvez attribuer le résultat de java:new à une variable. Utilisez-le directement dans java:call.
- Vous ne pouvez utiliser java:new seul. java:new est utilisé uniquement comme premier argument d'un appel de fonction Java.
Appels Java en chaîne
Vous pouvez effectuer des appels en chaîne en utilisant le résultat d'un appel java:call comme premier argument d'un autre. Par exemple :
-
java:call(java:call("java.lang.String", "valueOf", 100), "concat", "$")
Cet exemple convertit l'entier 100 en une chaîne de caractères et le concatène à un symbole dollar.
-
java:call(java:call(java:new("java.text.SimpleDateFormat", "yyyy-MM-dd"), "parse", "2018-10-15"), "getDate")
Cet exemple crée un objet SimpleDateFormat, analyse une chaîne de date et récupère la date.