Accéder au contenu principal Passer au contenu complémentaire

Appeler des fonctions Java dans des expressions

Un appel de fonction Java est l'appel d'une méthode de classe Java (méthode statique) ou d'un objet Java que vous pouvez utiliser directement dans des expressions Data Shaping à l'aide du mot-clé java:call. Pour activer l'appel de fonction Java, cochez la case Enable java function calls in DSQL Maps (Activer les appels de fonctions Java dans les maps DSQL) dans les Preferences (Préférences) > Talend > Hierarchical Mapper (Mappeur hiérarchique).

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.

Note InformationsImportant :
  • 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.

Cette page vous a-t-elle aidé ?

Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.