clojure
Interop Java
Szukaj…
Składnia
-
.
umożliwiamy dostęp do metod instancji -
.-
pozwalamy na dostęp do pól instancji -
..
makro rozwijane do wielu zagnieżdżonych wywołań.
Uwagi
Jako język hostowany Clojure zapewnia doskonałą obsługę interoperacyjności z Javą. Kod Clojure można również wywołać bezpośrednio z Java.
Wywołanie metody wystąpienia na obiekcie Java
Możesz wywołać metodę wystąpienia za pomocą .
specjalna forma:
(.trim " hello ")
;;=> "hello"
Możesz wywoływać metody instancji z takimi argumentami:
(.substring "hello" 0 2)
;;=> "he"
Odwoływanie się do pola instancji w obiekcie Java
Możesz wywołać pole instancji, używając składni .-
:
(def p (java.awt.Point. 0 1))
(.-x p)
;;=> 0
(.-y p)
;;=> 1
Tworzenie nowego obiektu Java
Możesz utworzyć instancję obiektów na jeden z dwóch sposobów:
(java.awt.Point. 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
Lub
(new java.awt.Point 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
Wywołanie metody statycznej
Możesz wywoływać metody statyczne takie jak to:
(System/currentTimeMillis)
;;=> 1469493415265
Lub przekaż argumenty, takie jak to:
(System/setProperty "foo" "42")
;;=> nil
(System/getProperty "foo")
;;=> "42"
Wywoływanie funkcji Clojure z Java
Możesz wywołać funkcję Clojure z kodu Java, wyszukując funkcję i wywołując ją:
IFn times = Clojure.var("clojure.core", "*");
times.invoke(2, 2);
To wyszukuje funkcję *
z przestrzeni nazw clojure.core
i wywołuje ją z argumentami 2 i 2.
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow