Starting in Java 9, the resource in a try-with-resources statement can be a reference to a final
or effectively-final
variable.
That is, you can write this:
AutoCloseable resource = ...; try (resource) { doSomething(resource); }
instead of this:
AutoCloseable resource = ...; try (AutoCloseable resource2 = resource) { doSomething(resource2); }
NOTE: the resource cannot be an arbitrary expression, for example try (returnsTheResources()) { ... }
is still not allowed.