Initialisierung der doppelten Klammer mit verschachtelten Sammlungen

8

Ich weiß, dass ich eine List mit doppelten Klammern deklarieren und initialisieren kann:

%Vor%

Aber ich möchte ein List von <Map<Object,Object>> :

%Vor%

Wie kann ich die doppelte Klammerinitialisierung (siehe (1)) mit verschachtelten Sammlungen verwenden? Mein Ziel ist es, die Datenstruktur in einer einzigen Zeile zu deklarieren und zu initialisieren.

Ich würde auch gerne wissen, ob es gewisse Nachteile bei der Verwendung der Doppelstrebeninitialisierung gibt, die ich beachten muss.

    
Arvind Vishwakarma 09.02.2015, 12:56
quelle

2 Antworten

10

Vermeiden Sie doppelte Klammerinitialisierung, da es a) Ihre Kollegen überrascht und schwer zu lesen ist, b) die Leistung beeinträchtigt und c) Probleme mit der Objektgleichheit verursachen kann (jedes erstellte Objekt hat ein eindeutiges Klassenobjekt).

Wenn Sie an einem Code-Style-Guide arbeiten, gehört diese Art von Trickserei in den Abschnitt do not .

Wenn Sie wirklich in der Lage sein möchten, Listen und Karten inline zu erstellen, machen Sie einfach ein paar Factory-Methoden. Könnte so aussehen:

%Vor%

Vangs Beispiel zeigt jedoch genau, wie die Syntax für Ihr Beispiel für die Doppelstrebeninitialisierung ist.

    
atamanroman 09.02.2015 13:09
quelle
5

Es ist keine gute Idee, weil es schwer zu lesen ist, aber Sie können Folgendes tun:

%Vor%     
Bracadabra 09.02.2015 13:01
quelle

Tags und Links