Recherche…


Syntaxe

  • . vous permet d'accéder aux méthodes d'instance
  • .- vous permet d'accéder aux champs d'instance
  • .. macro en expansion à plusieurs invocations imbriquées de .

Remarques

En tant que langage hébergé, Clojure fournit un excellent support d'interopérabilité avec Java. Le code Clojure peut également être appelé directement depuis Java.

Appeler une méthode d'instance sur un objet Java

Vous pouvez appeler une méthode d'instance avec le . forme spéciale:

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

Vous pouvez appeler des méthodes d'instance avec des arguments comme ceci:

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

Référencement d'un champ d'instance sur un objet Java

Vous pouvez appeler un champ d'instance à l'aide de la syntaxe .- :

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

Créer un nouvel objet Java

Vous pouvez créer une instance d'objets de deux manières:

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

Ou

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

Appeler une méthode statique

Vous pouvez appeler des méthodes statiques comme ceci:

(System/currentTimeMillis)
;;=> 1469493415265

Ou passer des arguments, comme ceci:

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

Appeler une fonction Clojure à partir de Java

Vous pouvez appeler une fonction Clojure à partir du code Java en recherchant la fonction et en l'appelant:

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

Cela recherche la fonction * depuis l' clojure.core noms clojure.core et l'invoque avec les arguments 2 & 2.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow