2010-11-27 3 views
5

리플렉션을 사용하여 Clojure에서 Java 객체의 메서드를 얻고 싶습니다. 인수 유형 중 하나는 Java 프리미티브이며 Clojure에서 이들을 참조하는 방법을 알지 못합니다.Clojure에서 기본 Java 유형을 어떻게 참조할까요?

예를 들어 String.valueOf(boolean)을 받고 싶다고 말하고 싶습니다. 내 가까운 추측은

(.getDeclaredMethod String "valueOf" (into-array [Boolean])) 

을하는 것입니다하지만 Boolean가 원시 형 자체하지만, 박스 버전이 아니기 때문에이 오류가 발생합니다. 내가 boolean을 시도했지만 내장 된 Clojure 함수를 참조하고 bool은 정의되지 않았습니다.

Clojure에서 원시 Java 유형을 어떻게 참조 할 수 있습니까?

답변

10

박스형 상당의 TYPE 속성을 통해 기본 유형을 참조 할 수 있습니다. 예 :

user=> (.getDeclaredMethod String "valueOf" (into-array [Boolean/TYPE])) 
#<Method public static java.lang.String java.lang.String.valueOf(boolean)>