2011-02-07 8 views
6

Qual è la sintassi per un suggerimento di tipo per java.util.Map.Entry, una classe interna statica nidificata, in Clojure 1.2?Clojure tipo hint per Map.Entry

Ho provato entrambi ^Map/Entry e ^Map.Entry e nessuno dei due verrà compilato.

risposta

10

Trovato!

(ns com.example 
    (:import [java.util Map Map$Entry])) 

(let [^Map$Entry foo ...]) 

e per il tipo-accennando un Object[]:

(let [^"[Ljava.lang.Object;" foo ...]) 

BTW, questo è un po 'brutto sintassi. C'è un modo migliore?

+0

Nel caso dell'array di oggetti, 'objects'. – Brian

3

Le classi interne sono indicate dal segno $, quindi, in questo caso, è possibile fare riferimento ad esso da Clojure come Map$Entry.

+0

er dev: guarda la mia risposta :-). – Ralph