Как отправить мультиметод по типу массива - PullRequest
8 голосов
/ 06 мая 2010

Я работаю над мультиметодом, который должен обновить хэш для множества различных вещей в последовательности. Выглядело довольно смиренно, пока я не попытался ввести «тип массива X».

(defmulti update-hash #(class %2))

(type (byte 1))
=> java.lang.Byte
(defmethod update-hash java.lang.Byte [md byte]
  (. md update byte))

(type (into-array  [ (byte 1)]))
=> [Ljava.lang.Byte;
(defmethod update-hash < WHAT GOES HERE > [md byte]

1 Ответ

9 голосов
/ 06 мая 2010

Любой из них должен работать:

(defmethod update-hash (Class/forName "[Ljava.lang.Byte;") [md byte] ...)

(defmethod update-hash (class (make-array Byte 0)) [md byte] ... )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...