Quiero mi acto programa diferente entre los tipos de primitivas y sus clases de envoltura, por ejemplo:¿Cómo enviar multimétodo en tipos primitivos?
(defmulti try-type class)
(defmethod try-type Integer [arg]
(println "Integer"))
(defmethod try-type Integer/TYPE [arg]
(println "int"))
Pero esto no funciona, aunque trato de enteros e INT tanto
user=> (try-type (.intValue (int 2)))
Integer
nil
user=> (try-type (int 2))
Integer
nil
Por lo tanto, es es posible enviar multimétodo en tipos primitivos?
====== ====== EDITAR
i estaba envolviendo una guayaba en Google clojure. Hay una biblioteca primitiva en ella, como Booleans, Dobules, Ints, etc. Tienen algunos métodos en común, por lo que quiero probar con multimétodo.
¿podría explicar por qué quiere hacer esto? actualmente no es posible el envío de primitivos, pero probablemente haya una buena forma de lograr el mismo objetivo (google "Problema XY") – mikera
@mikera editado! – qiuxiafei