Чтобы получить дескриптор метода экземпляра Java, который мы можем вызвать позже, мы можем вызвать функцию memfn :
user=> (def g (memfn Integer/toString))
#'user/g
user=> (g 789)
"789"
Это не работает для статических методов Java:
user=> (def g (memfn Integer/toHexString))
#'user/g
user=> (g 789)
IllegalArgumentException No matching method found: toHexString for class java.lang.Long clojure.lang.Reflector.invokeMatchingMethod (Reflector.java:52)
user=> (g)
ArityException Wrong number of args (0) passed to: user$g clojure.lang.AFn.throwArity (AFn.java:437)
Как мы можем получить дескриптор статического метода Java, чтобы мы могли вызвать его позже?