Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Berjaya Memanggil Fungsi Clojure dari Java?

Bagaimanakah Saya Boleh Berjaya Memanggil Fungsi Clojure dari Java?

Linda Hamilton
Linda Hamiltonasal
2024-12-14 20:50:24625semak imbas

How Can I Successfully Call Clojure Functions from Java?

Memanggil Clojure dari Jawa

. Pengenalan.

Memanggil Clojure dari Java boleh menjadi rumit kerana kebanyakan cadangan Google sudah lapuk. Artikel ini menyediakan langkah yang jelas untuk membuat panggilan ini, dengan andaian anda telah membina JAR daripada projek Clojure dan menambahkannya pada laluan kelas.

. Memanggil Clojure.

Untuk berjaya memanggil Clojure dari Java, gunakan langkah ini:

  1. Isytiharkan ruang nama dengan :gen-class untuk mencipta Java class dan :methods untuk menentukan kaedah yang boleh dipanggil oleh Java.
  2. Buat pembungkus fungsi (-binomial dalam contoh ini) yang boleh dipanggil oleh Java.
  3. Sertakan JAR Clojure dalam laluan kelas.

. Contoh Dikemaskini.

Bahagian 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))

Bahagian 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));
    }
}

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Berjaya Memanggil Fungsi Clojure dari Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn