Ecco il problema specifico che sto incontrando. Sto usando SLF4J Logger (Il tipo di variabile logger
sotto)Come risolvere il riferimento al metodo ambiguo in scala
//After adding to a map
logger debug ("Adding {} = {}", key, value)
Ecco cosa passaggio del mouse in Eclipse (e il compilatore) mi dicono.
ambiguo riferimento alla definizione overload, sia metodo debug tratto Logger di tipo (x $ 1: stringa, x $ 2: Object *) Unità e metodo debug tratto Logger di tipo (x $ 1: stringa, x $ 2: qualsiasi, x $ 3: qualsiasi) Unità tipi di corrispondenza di argomenti (String, String, String)
capisco perché sono ambigue. Non sto certo discutendo con il compilatore :). Voglio semplicemente sapere come i programmatori esperti risolvono questo problema.
Qui ci sono le alternative che posso usare
Creare e la matrice, e cavalcare le
Object*
definizionelogger debug ("Adding {} = {}", Array(key, value):_*)
Fusioni di
Any
logger debug ("Adding {} = {}", key.asInstanceOf[Any], value.asInstanceOf[Any])
Nessun approccio è particolarmente allettante. La comunità ha un approccio o dei suggerimenti migliori per me?
Grazie mille!
Sembra che potrebbe essere un problema noto - vedere [qui] (https://github.com/typesafehub/scalalogging/issues/16) – Shadowlands
Penso che sia così. Grazie per il tuo aiuto @Shadowlands! Se potessi pubblicare una risposta come risposta, potrei contrassegnare la domanda risolta e possiamo aiutare la comunità. – Prashant
Con l'interpolazione delle stringhe, io uso sempre i dati di 'logger debug (s" Aggiunta di $ key = $ valore). "Poiché l'interpolazione delle stringhe è tempo di compilazione, probabilmente è anche più efficiente –