New "for" syntax could respect "Closeable" interface.
It's a natural limitation of the new for() syntax that the Iterator (where applicable) can't be directly accessed. One of the situations where this is a problem is if an iterator uses resources, like a database cursor, for example that needs explicit closure when the loop is finished.
So how about the loop syntax checking if the Iterator implements Closeable and, if so, closing it when the loop exits? Ideally this should be done as if in a finally clause.
Or we could have a sub-interface of Iterable/Iterator which includes a close method signature.