Adrian Cuthbertson a écrit :
> Hi Christophe,
>
> It works as per your example, but not with arguments to the method...
>
> ns gncls.MyStatic
> (:gen-class
> :methods [#^{:static true} [f [String] void ]]))
>
> (defn -f
> [s] ; also [this s] doesn't work
> (prn "Hi from " s ))
>
> (gncls.MyStatic/f "me")
> java.lang.Exception: No such var: gncls.MyStatic/f (NO_SOURCE_FILE:2
Hmm, the exception says it is looking for gncls.MyStatic/f, not for
gncls.MyStatic/-f, it hints me that you are not going through the static
method at all but directly to the function through the namespace
gncls.MyStatix. Try and contrast:
(ns gncls.MyStatic
(:gen-class
:methods [#^{:static true} [f [String] void ]]))
(defn -f
[s]
(prn "Hi " s "from -f"))
(defn f
[s]
(prn "Hi " s "from f"))
(gncls.MyStatic/f "me") ; should print "Hi me from f"
(. gncls.MyStatic f "me") ; should print "Hi me from -f"
a/b both means function b in ns a and static method b in class a, when you have
both a ns and a class going by the same name the ns wins.
Christophe
--
Professional: http://cgrand.net/ (fr)
On Clojure: http://clj-me.blogspot.com/ (en)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---