Ricerca…


Sintassi

  • . consentiamo l'accesso ai metodi di istanza
  • .- consente di accedere ai campi di istanza
  • .. macro espandibile a più invocazioni annidate di .

Osservazioni

Come linguaggio ospitato, Clojure offre un eccellente supporto di interoperabilità con Java. Il codice Clojure può anche essere chiamato direttamente da Java.

Chiamare un metodo di istanza su un oggetto Java

Puoi chiamare un metodo di istanza usando il . forma speciale:

(.trim " hello ")
;;=> "hello"

Puoi chiamare i metodi di istanza con argomenti come questo:

(.substring "hello" 0 2)
;;=> "he"

Fare riferimento a un campo di istanza su un oggetto Java

Puoi chiamare un campo istanza usando la sintassi .- :

(def p (java.awt.Point. 0 1))
(.-x p)
;;=> 0
(.-y p)
;;=> 1

Creare un nuovo oggetto Java

Puoi creare un'istanza di oggetti in due modi:

(java.awt.Point. 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]

O

(new java.awt.Point 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]

Chiamare un metodo statico

Puoi chiamare metodi statici come questo:

(System/currentTimeMillis)
;;=> 1469493415265

Oppure passa argomenti, come questo:

(System/setProperty "foo" "42")
;;=> nil
(System/getProperty "foo")
;;=> "42"

Chiamare una funzione Clojure da Java

Puoi chiamare una funzione Clojure dal codice Java cercando la funzione e invocandola:

IFn times = Clojure.var("clojure.core", "*");
times.invoke(2, 2);

Questo cerca la funzione * dal namespace clojure.core e la invoca con gli argomenti 2 e 2.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow