Ich versuche, Clojure als Skriptsprache von einem Host-Java-Programm zu verwenden. Die Idee ist, dass der Endbenutzer Clojure-Skriptcode schreiben kann, der eine domänenspezifische Java-API aufruft. Zur Laufzeit wertet das Host-Java-Programm das Clojure-Skript des Endbenutzers aus (das wiederum die Domänen-APIs aufruft). Also habe ich mit einem todschicken Prototypen begonnen, um das Terrain zu erkunden.
(Clojure-Skript des Endnutzers zur Vereinfachung fest programmiert)
%Vor%(Code-Snippet aus hier )
So weit so gut.
Ich konnte jedoch keine Möglichkeit finden, die zweite Methode aufzurufen (diejenige, die ein Argument benötigt). Stattdessen habe ich zur Laufzeit das Clojure-Skript dynamisch generiert und einen Platzhalter durch ein Literal ersetzt, das das Ergebnis des Aufrufs der Domänenmethode passBackMsg darstellt. Offensichtlich ist dies unbefriedigend und geht nicht sehr weit (was ist, wenn ich eine java.sql.Connection an mein Clojure-Skript übergeben möchte?).
Also, wie rufe ich die Methode passBackMsg aus dem Java-Hostprogramm auf?
Wenn ich Folgendes versuche:
%Vor%Ich bekomme:
%Vor%... in Zeile-A. Wenn ich ohne die ns versuche und mit:
%Vor%("Benutzer" ist eine wilde Schätzung, da ich keine var -Methode ohne Namespace-Argument sehe)
Ich bekomme ein:
%Vor%... in Zeile-B.