clojure
Java-Interop
Suche…
Syntax
-
.
Lassen Sie uns auf Instanzmethoden zugreifen -
.-
die Sie Zugriff Instanzfelder lassen -
..
Makro, das sich auf mehrere verschachtelte Aufrufe von.
Bemerkungen
Als gehostete Sprache bietet Clojure hervorragende Unterstützung für die Interoperabilität mit Java. Clojure-Code kann auch direkt aus Java aufgerufen werden.
Aufruf einer Instanzmethode für ein Java-Objekt
Mit der können Sie eine Instanzmethode aufrufen .
Sonderform:
(.trim " hello ")
;;=> "hello"
Sie können Instanzmethoden mit folgenden Argumenten aufrufen:
(.substring "hello" 0 2)
;;=> "he"
Referenzieren eines Instanzfelds in einem Java-Objekt
Sie können ein Instanzfeld mit der Syntax .-
aufrufen:
(def p (java.awt.Point. 0 1))
(.-x p)
;;=> 0
(.-y p)
;;=> 1
Neues Java-Objekt erstellen
Sie können eine Instanz von Objekten auf zwei Arten erstellen:
(java.awt.Point. 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
Oder
(new java.awt.Point 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
Eine statische Methode aufrufen
Sie können statische Methoden wie folgt aufrufen:
(System/currentTimeMillis)
;;=> 1469493415265
Oder übergeben Sie Argumente wie folgt:
(System/setProperty "foo" "42")
;;=> nil
(System/getProperty "foo")
;;=> "42"
Aufrufen einer Clojure-Funktion aus Java
Sie können eine Clojure-Funktion aus Java-Code aufrufen, indem Sie die Funktion nachschlagen und aufrufen:
IFn times = Clojure.var("clojure.core", "*");
times.invoke(2, 2);
Dies sucht die *
-Funktion aus dem clojure.core
Namespace und ruft sie mit den Argumenten 2 und 2 auf.
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow