Java 7 no admite literales de colecciones. Ellos están previstas para Java 8. Ellos no lo hacen, incluso en Java 8 como se discute en esta pregunta: Are Project Coin's collection enhancements going to be in JDK8?
Puede utilizar la biblioteca de Google Guava si necesita sólo colecciones inmutables. ImmutableList
, ImmutableSet
y ImmutableMap
tienen varios métodos de fábrica sobrecargados o incluso constructores que hacen que la creación de colecciones fácil:
List<Integer> list = ImmutableList.of(1, 1, 2, 3, 5, 8, 13, 21);
Set<String> set = ImmutableSet.of("foo", "bar", "baz", "batman");
Map<Integer, String> map = ImmutableMap.of(1, "one", 2, "two", 3, "three");
EDITAR
Java 9 probablemente añadir collection factory methods similares a los de guayaba:
List.of(a, b, c);
Set.of(d, e, f, g);
Map.of(k1, v1, k2, v2)
Map.ofEntries(
entry(k1, v1),
entry(k2, v2),
entry(k3, v3),
// ...
entry(kn, vn)
);
Los dos puntos mirada divertida! :) –
En Java 8, puede usar este truco para sacar literals de mapas razonables de expresiones lambda: https://gist.github.com/galdosd/10823529 –
Ese truco depende del compilador en uso. Creo que funciona con Eclipse pero no con javac. –