मैं अलग तरह से आदिम प्रकार और उनके आवरण वर्गों के बीच मेरा कार्यक्रम कार्य करना चाहते हैं, उदाहरण के लिए:आदिम प्रकारों पर multimethod कैसे प्रेषित करें?
(defmulti try-type class)
(defmethod try-type Integer [arg]
(println "Integer"))
(defmethod try-type Integer/TYPE [arg]
(println "int"))
लेकिन यह काम नहीं करता है, हालांकि मैं पूर्णांक कोशिश करते हैं और दोनों
user=> (try-type (.intValue (int 2)))
Integer
nil
user=> (try-type (int 2))
Integer
nil
int तो, है आदिम प्रकारों पर multimethod प्रेषण संभव है?
====== संपादित ======
मैं clojure में एक गूगल अमरूद लपेटकर किया गया था। इसमें एक प्राचीन पुस्तकालय है, जैसे कि बूलियन, डॉब्यूल, इट्स इत्यादि। उनके पास कुछ विधियां आम हैं, इसलिए मैं multimethod को आजमा देना चाहता हूं।
क्या आप समझा सकते हैं कि आप ऐसा क्यों करना चाहते हैं? वर्तमान में प्राइमेटिव्स पर प्रेषण संभव नहीं है, लेकिन संभवतः एक ही उद्देश्य (Google "XY समस्या") प्राप्त करने का एक अच्छा तरीका है – mikera
@ मिकरा संपादित! – qiuxiafei