プログラムがプリミティブ型とそのラッパークラスの間で異なる動作をするようにしたいのです。次に例を示します。
(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
では、プリミティブ型にマルチメソッドをディスパッチすることは可能ですか?
======編集======
私はグーグルグアバをclojureに包んでいました。ブール値、Dobules、Intsなどのプリミティブライブラリがあります。それらにはいくつかの共通のメソッドがあるので、マルチメソッドを試してみたいと思います。