Was ist die Syntax für die Initialisierung der doppelten Klammer ( {{ ... }}
) in Java?
Antworten
Zu viele Anzeigen?
Anton Dozortsev
Punkte
4604
Sie können einige Java-Anweisungen als Schleife einfügen, um die Sammlung zu initialisieren:
List<Character> characters = new ArrayList<Character>() {
{
for (char c = 'A'; c <= 'E'; c++) add(c);
}
};
Random rnd = new Random();
List<Integer> integers = new ArrayList<Integer>() {
{
while (size() < 10) add(rnd.nextInt(1_000_000));
}
};
Aber dieser Fall wirkt sich auf die Leistung aus, prüfen Sie dies Diskussion
Ankit Sharma
Punkte
1115
Die erste Klammer erstellt eine neue anonyme Klasse und der zweite Satz von Klammern erstellt einen Instanzinitialisierer wie der statische Block.
Wie schon andere gesagt haben, ist es nicht sicher zu verwenden.
Für die Initialisierung von Sammlungen können Sie jedoch immer diese Alternative verwenden.
-
Java 8
List<String> list = new ArrayList<>(Arrays.asList("A", "B", "C"));
-
Java 9
List<String> list = List.of("A", "B", "C");
Chuck Vose
Punkte
4453
- See previous answers
- Weitere Antworten anzeigen