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