matriz - map foreach java
Java: matriz "anĂ³nima" en for-each-loop (4)
Dunno, ¿qué hay de esto? :) Lástima que no hay una versión sucinta. Supongamos que puedes usar Groovy o Scala si quieres algo como eso :)
for (String s : Arrays.asList("a","b","c")) {
hmm(s);
}
Mientras intentaba algo especial en for loop, reconocí que a Java no parece gustarle poner una matriz anónima como fuente de un bucle for-each:
for (String crt : {"a","b","c"} ) {
doSomething();
}
en realidad no funciona mientras
String[] arr = {"a","b","c"};
for (String crt : arr ) {
doSomething();
}
hace.
Incluso lanzar el conjunto a String [] no ayuda. Al mover el cursor sobre la primera versión, eclipse me dice:
Type mismatch: cannot convert from String[] to String
mientras que significa "crt".
¿Es esto un error?
El lenguaje Java proporciona el formulario {"a","b","c"}
como acceso directo, pero solo es posible durante la asignación. Es posible que esto evite posibles ambigüedades durante el análisis, en algunas posiciones {}
podría interpretarse como un bloque de código.
La forma correcta de hacerlo sería cómo sugiere Noah, con una new String[]{"a","b","c"}
.
Esto funcionará:
for (String crt : new String[]{"a","b","c"} ) {
doSomething();
}
Usted quiere
for (String crt : new String [] {"a","b","c"} ) {
doSomething();
}
Yo uso IntelliJ y dice poner el mensaje "expresión esperada" en el lado derecho del colon en el for-loop, que parece más preciso.
Debo añadir que IntelliJ también ofrece agregar el "nuevo String []" automágicamente para mí.