내가 예를 들어, 다른 원시 타입과 래퍼 클래스 사이에 내 프로그램의 행위를 원하는 :프리미티브 유형에 멀티 메소드를 디스패치하는 방법은 무엇입니까?
(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로하지 않습니다이며, 프리미티브 유형에 멀티 메소드를 디스패치 할 수 있습니까?
====== 편집 ======
제가 Clojure의 구글에 구아바 배치 하였다. Booleans, Dobules, Ints 등과 같은 기본 라이브러리가 있습니다. 공통적 인 몇 가지 메소드가 있으므로 다중 메소드를 사용하려고합니다.
이유를 설명 할 수 있습니까? 현재 프리미티브에 파견 할 수는 없지만 동일한 목표 (Google XY 문제)를 달성하는 좋은 방법이있을 수 있습니다. – mikera
@mikera가 편집되었습니다. – qiuxiafei