In Groovy verwende ich die map literal notation ziemlich häufig in meinem Code, und war neugierig, welche konkrete Implementierung von Map es war.Groovy: getClass-Methode auf Karte Literal gibt Null zurück
Nach ein paar Dinge zu versuchen, dieses Skript zeigt am besten meine Verwirrung:
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
und erhalten diese Ausgabe:
[A:B]
true
null
Das sagt mir, dass die Karte offenbar eine HashMap, aber die getClass Methode will mir das nicht sagen.
Also meine Frage ist: Warum gibt getClass Null zurück, und gibt es eine geeignetere Möglichkeit, Laufzeitklasse-Informationen von Groovy zu bekommen?
Bah genannt, habe ich vergessen, Groovy könnte auch, dass als Mapkey interpretieren. Vielen Dank! – Kirie
#GroovyPuzzlers, S01. – JBaruch
Ich frage mich manchmal, warum die Gemeinschaft nicht zusammenkommt und Skriptsprachen meidet. Dies ist das 30. "Problem", das ich hatte, seit ich angefangen habe, Groovy zu lernen, was ich mehr oder weniger tun muss, wenn ich mich mit Gradle auf den neuesten Stand bringen möchte. Jeder behauptet, dass Skriptsprachen die Produktivität verbessern. Ist das ein Spott der Realität? Während sich JavaScript stark typisiert und objektorientiert entwickelt, gehen JVM-basierte Sprachen in die entgegengesetzte Richtung. Geschichte wiederholt sich. –