Maison >Java >javaDidacticiel >Comment puis-je appeler avec succès les fonctions Clojure à partir de Java ?

Comment puis-je appeler avec succès les fonctions Clojure à partir de Java ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-14 20:50:24627parcourir

How Can I Successfully Call Clojure Functions from Java?

Appel de Clojure depuis Java

. Intro.

Appeler Clojure depuis Java peut être délicat car la plupart des suggestions de Google sont obsolètes. Cet article fournit des étapes claires pour effectuer cet appel, en supposant que vous avez construit un JAR à partir d'un projet Clojure et que vous l'avez ajouté au chemin de classe.

. Appel de Clojure.

Pour appeler avec succès Clojure depuis Java, suivez ces étapes :

  1. Déclarez l'espace de noms avec :gen-class pour créer un Java class et :methods pour spécifier des méthodes appelables par Java.
  2. Créer un wrapper fonction (-binomial dans cet exemple) qui peut être appelée par Java.
  3. Incluez le Clojure JAR dans le chemin de classe.

. Exemple mis à jour.

Partie Clojure :

(ns com.domain.tiny
  (:gen-class
    :name com.domain.tiny
    :methods [#^{:static true} [binomial [int int] double]]))

(defn binomial
  "Calculate the binomial coefficient."
  [n k]
  ...)

(defn -binomial
  "A Java-callable wrapper around the 'binomial' function."
  [n k]
  (binomial n k))

Partie Java :

import com.domain.tiny;

public class Main {

    public static void main(String[] args) {
        System.out.println("(binomial 5 3): " + tiny.binomial(5, 3));
        System.out.println("(binomial 10042, 111): " + tiny.binomial(10042, 111));
    }
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn