Proposal: Automatic Resource Management

Neal Gafter neal at gafter.com
Tue Sep 1 17:13:05 PDT 2009


On Tue, Sep 1, 2009 at 4:24 PM, Rémi Forax <forax at univ-mlv.fr> wrote:

> This will require to introduce a new interface IterableDisposable or
> something like that to ease the use of such pattern.
>

That's one way to do it.  Here are two others:

 1. Dynamically test the type of the iterator to see if it extends
Disposable.

 2. Statically test the static return type of iterableExpression.iterator(),
which due to covariance may be a type that extends both Iterable<?> and
Disposable.

I think (2) works best, so that the compiler can see the exceptions
statically thrown by iterableExpression.iterator().close() and the
programmer won't have to catch(Exception).

Cheers,
Neal



More information about the coin-dev mailing list