Voglio che la mia legge-programma in modo diverso tra i tipi primitivi e le loro classi wrapper, per esempio:Come inviare multimetod sui tipi primitivi?
(defmulti try-type class)
(defmethod try-type Integer [arg]
(println "Integer"))
(defmethod try-type Integer/TYPE [arg]
(println "int"))
Ma non funziona, anche se provo Integer e int sia
user=> (try-type (.intValue (int 2)))
Integer
nil
user=> (try-type (int 2))
Integer
nil
Quindi, è è possibile inviare metodi multimetali su tipi primitivi?
====== ====== EDIT
stavo avvolgendo un guava google in clojure. C'è una libreria primitiva, come Booleans, Dobules, Ints ecc. Hanno alcuni metodi in comune, quindi voglio provare multimethod.
potresti spiegare perché vuoi farlo? attualmente non è possibile effettuare il dispatching su primitive, ma probabilmente c'è un buon modo per raggiungere lo stesso obiettivo (google "XY Problem") – mikera
@mikera modificato! – qiuxiafei