Groovy Map Gotcha

Ich schaue mir derzeit Groovy an und bin dabei auf etwas gestoßen was mich doch ziemlich verwirrt hat. Es geht um das Verhalten des .class Attributs (?) von Objekten (Wobei sich dies hinterher als „Feature“ der groovy Maps heraugestellt hat).


groovy:000> [1, 2, 3].class
===> class java.util.ArrayList
// Wie erwartet


groovy:000> [a: 1, b: 2, c: 3].class
===> null
// WTF?


groovy:000> [a: 1, b: 2, c: 3].getClass()
===> class java.util.LinkedHashMap
// Hmm, das scheint aber zu funktionieren

Die Lösung dieses Mysteriums hat sich mir dann erschlossen als ich herausgefunden habe dass man auf Maps mittels Schreibweise: mymap.key zugreifen kann.


groovy:000> [a: 1, b: 2, class: 3].class
===> 3
// Was sonst ... :)

Wir lernen also:

  1. Benutze getClass()
  2. Magie hat nicht nur die Leute im Mittelalter verwirrt
  3. Groovy hat einige Gotchas

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: