Groovy Objekt Array-Erstellung Frage

8

Warum löst dies eine Ausnahme aus?

%Vor%

wenn ich das nicht tue ...

%Vor%     
Aaron Saunders 21.12.2009, 17:15
quelle

2 Antworten

18

Weil ["[email protected]"] zu einer ArrayList, nicht zu einem Array ausgewertet wird:

%Vor%

OTOH Ihre Deklaration erstellt ein Array von Objekten:

%Vor%

und die Methode, die Sie aufrufen, benötigt ein Array. Sie können ein Array mit as erstellen:

%Vor%

Die Groovy-Entwickler haben es sich zur Aufgabe gemacht, Datenstrukturen auf höherer Ebene wie Listen idiomatisch zu gestalten, während Arrays für die Interoperabilität mit Java vorhanden sind.

In seinem Interview in Coders at Work spricht Guy Steele über Entscheidungen, die beim Entwerfen einer Sprache getroffen wurden:

  

"Da ist dieses Huffman-Codierungsproblem. Wenn Sie etwas übersichtliches machen,   etwas wird als Konsequenz dadurch ausführlicher sein müssen. Also rein   eine Sprache zu entwerfen, ist eines der Dinge, über die du nachdenkst: Was sind?   die Dinge, die ich sehr leicht sagen möchte und sehr leicht zu bekommen   Recht?' Aber mit dem Verständnis, dass, die Charaktere oder   Symbole für diesen Zweck, du wirst etwas anderes machen müssen   ein bisschen schwerer zu sagen. "

Es sieht sicherlich so aus, als wären Groovy-Listen prägnanter geworden, mit dem Nebeneffekt, dass Arrays verbaler werden.

    
Nathan Hughes 21.12.2009, 17:25
quelle
1

Nathan hat den Grund für dieses Verhalten auf dem Sprachniveau bereits (richtig) erklärt. Ich möchte nur eine Abstraktionsebene nach oben verschieben: Warum benutzen Sie Spring's MessageSource direkt? In Grails gibt es ein message -Tag , das die Nachrichtenquelle umschließt:

%Vor%     
Daniel Rinser 22.12.2009 02:19
quelle

Tags und Links