Feedback and comments on ARM proposal

Mark Mahieu markmahieu at googlemail.com
Tue Mar 10 16:36:52 PDT 2009


Hi Josh,

On 10 Mar 2009, at 21:51, Joshua Bloch wrote:

> Tim is a bigger fan of adapters than I am (for this purpose).  To  
> the best of my recollection, 3 of the 5 types above could be  
> retrofitted to implement AutomaticallyCloseable, and I think that's  
> a better solution where it works.

No argument there :)

>
>
> If ARM recognised this interface, and called the toAutoCloseable()
> method behind the scenes (waves hands), Resource could be made to
> implement AutoCloseAdaptable very simply, and we could write this:
>
>
>        try (Path path = new Path(display)) {
>                path.whatever();
>                // etc
>        }
>
>
> Which is exactly what we'd want, I think.
>
> This is a possibility.  It still doesn't work for interfaces, but I  
> can't imagine a class for which it doesn't work.  That said, I'm  
> not sure I prefer it to a simple two-interface proposal  
> (AutoCloseable + AutoDisposable).  I suspect that this combination  
> would enable retrofitting of nearly every class that could benefit  
> from the facility.  I understand that it's unsatisfying, but it's  
> simpler than the AutoCloseAdaptable approach.

Perhaps this does come down to how well a given variation meshes with  
interfaces.

I mean, I pity poor Jean-Luc, who brushes his teeth before bed every  
night, pays his taxes on time, and prefers to expose interfaces from  
his APIs.  Sadly, he named his disposal method 'fermer', and can't  
retrofit AutoCloseable or AutoDisposable onto his interfaces without  
breaking code downstream.  So he's stuck with an adapter approach  
anyway, only he can't decide whether it should return an  
AutoCloseable or an AutoDisposable, poor guy.

;)

But seriously, it probably is a minor detail.  Thanks for taking the  
time to read through my suggestion.

Regards,

Mark




More information about the coin-dev mailing list