Feedback and comments on ARM proposal (original) (raw)

Florian Weimer fw at deneb.enyo.de
Sat Mar 21 10:00:10 PDT 2009


I think it might be easier to specify (and implement the package variant. Roughly speaking, the legal types for "manageable resources" are those that are assignment compatible with one and only one of the classes in java.lang.auto. While it's not generally possible to enumerate over classes in a package, the compiler can be (are, in fact) tied to particular versions of the platform so this shouldn't present too big a problem (though it could limit extensibility by JRE hackers).

If the interface has to reside in a package java.lang.auto.disposer, you could name the interface by the name of the method, and generate implementations automatically. For instance, java.lang.auto.disposer.foo would behave as if it were implemented as

package java.lang.auto.disposer;

public interface foo {
    foo() throws Exception;
}

java.io.Closeable would look like this:

package java.io;

import java.io.IOException;

public interface Closeable extends java.lang.auto.disposer.close {
    public void close() throws IOException;

}

If some other language mechanism eventually made this obsolete, those generated interfaces could likely incorporate this mechanism automatically.

But perhaps this is too cute (but I think similar approaches where proposed to deal with tuples).



More information about the coin-dev mailing list