In Groovy uso il map literal notation abbastanza frequentemente nel mio codice ed ero curioso di sapere quale implementazione concreta fosse Map.Groovy: metodo getClass su restituzioni letterali della mappa null
Dopo aver provato un paio di cose, questo script illustra meglio la mia confusione:
def map = ["A":"B"]
println map // I assume this avoids any lazy evaluation of the map
println map instanceof HashMap // I tried some other impls too
println map.class
e ricevere questo output:
[A:B]
true
null
Questo mi dice che la mappa è apparentemente un HashMap, ma il getClass il metodo non vuole dirmelo.
Quindi la mia domanda è: perché getClass restituisce null, e c'è un modo più appropriato per ottenere informazioni sulla classe di runtime da Groovy?
Bah, ho dimenticato Groovy potrebbe anche interpretare che come chiave della mappa. Grazie! – Kirie
#GroovyPuzzlers, S01. – JBaruch
A volte mi chiedo perché la comunità non si riunisca e eviti i linguaggi di scripting. Questo è il 30 ° "problema" che ho avuto da quando ho iniziato ad imparare Groovy, cosa che devo più o meno fare se voglio mettermi al passo con Gradle. Tutti sostengono che i linguaggi di scripting migliorano la produttività. È una presa in giro della realtà? Mentre JavaScript si muove verso l'essere fortemente tipizzato e orientato agli oggetti, i linguaggi basati sulla JVM vanno nella direzione opposta. La storia si ripete. –