Frage Groovy Map Klasse auflösen


Jeder kann erklären, warum das Aufrufen von [:]. Class auf einer Karte beim Aufruf von [:] null zurückgibt. GetClass () gibt das erwartete Ergebnis Map zurück. Siehe Beispiel unten

1-

["test",[test:"test"],23].each {     
  println it.class 
}
class java.lang.String
null
class java.lang.Integer

2-

["test",[test:"test"],23].each {     
  println it.getClass()
}
class java.lang.String
class java.util.LinkedHashMap
class java.lang.Integer

Ken


7
2017-11-06 14:37


Ursprung


Antworten:


Hier ist die Antwort

http://jira.codehaus.org/browse/GROOVY-1824

Bearbeiten - sicher. Ich denke die Semantik einer Map ist so, dass wenn du es hast

def m = [one:1, two:2]

Sie sollen auf die Einträge in der Map wie zugreifen können

m.one

Mit anderen Worten, der Zugriff auf die Karte ist wie das Abrufen einer Eigenschaft auf dem Kartenobjekt. Ob

m.class 

gab die Klasse zurück, es würde diese Semantik brechen, weil "Klasse" kein Schlüssel ist, der vom Programmierer zur Karte hinzugefügt wurde.

Das ist was ich sammle ....


11
2017-11-06 15:07