수색…


통사론

  • . 인스턴스 메소드에 액세스 해 봅시다.
  • .- 인스턴스 필드에 액세스 해 봅시다.
  • .. 매크로가 여러 개의 중첩 된 호출로 확장되었습니다 .

비고

호스팅 언어로서 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