Feedback and comments on ARM proposal

Stefan Schulz schulz at e-spirit.de
Fri Mar 20 16:47:36 PDT 2009


Hm, maybe I am blind to see, why it wouldn't then be possible to add a 
second "marker" interface "AutoOpenable".

I'm just a bit unsure, what the compiler has to do here. Will a 
ClosableResource have to be implemented directly, or may interfaces 
extend it? Sounds like quite some class traversing.

Stefan

Reinier Zwitserloot schrieb:
> Interesting idea. I'm ambivalent; one specific interface with a void 
> close() throws Exception method works for me, but this is slightly 
> more flexible and sufficiently simple too. As long as one of those two 
> things makes it in java7, I'm happy :P
> 
> 
> Using a special package which contains only interfaces that serve as 
> AutoDisposable: Okay. Can you add your own to this? Technically you 
> can just put "java.lang.auto.Foo" in your own jar files, do those get 
> picked up, or will java.lang.auto become a sealed package of some 
> sort, or will it be limited to only interfaces in the java.lang.auto 
> package in the java-core module? If any programmer can add their own, 
> I think a marker interface is a better idea.
> 
> 
> In either case, *IF* anybody is allowed to add their own, javac should 
> optimally be expanded to, at compile time, whine about mistakes: If 
> you add a non-interface to it, or an interface with more than 1 
> method, or with 1 method but that method takes parameters.
> 
> 
> It can even sort of, kind of, solve locking:
> 
> public interface java.lang.auto.DisposableLock {
>      void unlock();
> }
> 
> public interface java.util.concurrent.Lock implements DisposableLock 
> { ... }
> 
> 
> try ( lock ) {
>      lock.lock(); //People are going to forget this, unfortunately
>      doWhatever();
> }
> 
> 
>   --Reinier Zwitserloot
> 
> 
> 
> On Mar 20, 2009, at 22:23, Bob Lee wrote:
> 
>  > +1. I also like not adding types directly to java.lang.
>  >
>  > On Fri, Mar 20, 2009 at 2:19 PM, Joshua Bloch <jjb at google.com> wrote:
>  >
>  >> Tim,
>  >> This is very clever!  While it doesn't allow programmers to create 
>  >> their
>  >> own
>  >> interfaces for use with the construct, it allows future release of 
>  >> the
>  >> platform to broaden the applicability of the construct without 
>  >> changing the
>  >> language.  And it does so without abusing annotations.  While it's 
>  >> not a
>  >> typical uses of packages, it wouldn't be the first time the 
>  >> language gave
>  >> special standing to a package.  For example, members of java.lang are
>  >> automatically imported on demand.
>  >>
>  >> What do others think?
>  >>
>  >>            Josh
>  >>
>  >> On Fri, Mar 20, 2009 at 2:08 PM, Tim Peierls <tim at peierls.net> wrote:
>  >>
>  >>> How about using a special package -- java.lang.auto, say -- with
>  >> initially
>  >>> only one or two interfaces -- AutoCloseable and AutoDisposable, 
>  >>> say --
>  >> and
>  >>> word the ARM proposal so that only subtypes of interfaces with a 
>  >>> single,
>  >>> parameterless method that are declared in this special package are
>  >> allowed
>  >>> in the ARM try-initialization?
>  >>>
>  >>> The idea here is to remove the decision about which clean-up 
>  >>> methods to
>  >>> support from the current proposal and make it a library design 
>  >>> issue.
>  >>>
>  >>> --tim
>  >>>
>  >>>
>  >>
>  >>
>  >
> 
> 
> 



More information about the coin-dev mailing list