Rumah >Java >javaTutorial >Bagaimana untuk Memanggil Fungsi Clojure dengan Cekap dari Java Menggunakan Teknik Moden?
Walaupun sesetengah maklumat yang diberikan dalam perbincangan dalam talian sebelum ini mungkin sudah lapuk, panggilan Clojure dari Java masih agak mudah. Berikut ialah panduan langkah demi langkah:
Penyediaan Balang Clojure:
Tentukan fungsi Clojure anda dalam src/com/domain/tiny.clj:
(ns com.domain.tiny) (defn binomial "Calculate the binomial coefficient." [n k] (let [a (inc n)] (loop [b 1 c 1] (if (> b k) c (recur (inc b) (* (/ (- a b) b) c)))))) (defn -binomial "A Java-callable wrapper around the 'binomial' function." [n k] (binomial n k)) (defn -main [] (println (str "(binomial 5 3): " (binomial 5 3))) (println (str "(binomial 10042, 111): " (binomial 10042 111))))
Jawa Kod:
Buat kelas Java yang memanggil fungsi Clojure:
import java.lang.reflect.Method; import com.domain.tiny; public class Main { public static void main(String[] args) { try { Method binomialMethod = Class.forName("com.domain.tiny").getMethod("binomial", int.class, int.class); Integer n = 5; Integer k = 3; Double result = (Double) binomialMethod.invoke(null, n, k); System.out.println("(binomial " + n + " " + k + "): " + result); n = 10042; k = 111; result = (Double) binomialMethod.invoke(null, n, k); System.out.println("(binomial " + n + ", " + k + "): " + result); } catch (Exception e) { System.err.println("Error calling Clojure function: " + e.getMessage()); e.printStackTrace(); } } }
Buat fail manifes (MANIFEST.MF) dengan yang sesuai kebergantungan:
Manifest-Version: 1.0 Class-Path: tiny.jar:clojure-x.y.z.jar Main-Class: Main
Jalankan Program:
Output hendaklah serupa dengan:
(binomial 5 3): 10.0 (binomial 10042, 111): 4.9068389575068143E263
Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi Clojure dengan Cekap dari Java Menggunakan Teknik Moden?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!