clojure
Java interop
수색…
통사론
-
.
인스턴스 메소드에 액세스 해 봅시다. -
.-
인스턴스 필드에 액세스 해 봅시다. -
..
매크로가 여러 개의 중첩 된 호출로 확장되었습니다.
비고
호스팅 언어로서 Clojure는 Java와의 뛰어난 상호 운용성 지원을 제공합니다. Clojure 코드는 Java에서 직접 호출 할 수도 있습니다.
Java 객체에 인스턴스 메소드 호출하기
를 사용하여 인스턴스 메소드를 호출 할 수 있습니다 .
특별한 형태 :
(.trim " hello ")
;;=> "hello"
다음과 같은 인수를 사용하여 인스턴스 메소드를 호출 할 수 있습니다.
(.substring "hello" 0 2)
;;=> "he"
Java 객체의 인스턴스 필드 참조
.-
구문을 사용하여 인스턴스 필드를 호출 할 수 있습니다.
(def p (java.awt.Point. 0 1))
(.-x p)
;;=> 0
(.-y p)
;;=> 1
새 Java 객체 만들기
다음 두 가지 방법 중 하나로 개체의 인스턴스를 만들 수 있습니다.
(java.awt.Point. 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
또는
(new java.awt.Point 0 1)
;;=> => #object[java.awt.Point 0x3776d535 "java.awt.Point[x=0,y=1]"]
정적 메서드 호출
다음과 같이 정적 메서드를 호출 할 수 있습니다.
(System/currentTimeMillis)
;;=> 1469493415265
또는 다음과 같이 인수를 전달하십시오.
(System/setProperty "foo" "42")
;;=> nil
(System/getProperty "foo")
;;=> "42"
자바에서 Clojure 함수 호출하기
함수를 검색하고 호출하여 Java 코드에서 Clojure 함수를 호출 할 수 있습니다.
IFn times = Clojure.var("clojure.core", "*");
times.invoke(2, 2);
clojure.core
네임 스페이스에서 *
함수를 찾고 인수 2 & 2로 호출합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow