PROPOSAL: Return 'this' (original) (raw)

Marek Kozieł develop4lasu at gmail.com
Thu Mar 26 08:51:46 PDT 2009


2009/3/26 Tom Hawtin <Thomas.Hawtin at sun.com>:

Marek Kozieł wrote:

MAJOR ADVANTAGE: Simplification of “return this” statement. 'void' can be easy replaced with 'this'.

MAJOR BENEFIT(s): It would prevent NullPointerException, and make some 'builder' like interfaces look really clear and simple. My problem with this is that it is an attempt to fix a hack due to a language problem with a language hack. The underlying problem is that Java does not have a concise syntax for builders. The usual hack is for builders to return this and clients to use method chaining. This solution makes the hack easier. A better solution would be direct, explicit support for builders in some form. Also the variant of this proposal that client-side reinterprets returning void to return this, would interfere to some extent with covariantly returning void when overriding a return of Void. Tom Hawtin

This is some point. I do not like it just because in need to be served outside, which increase interactions. Notice that this will work totally in unexpected way when:

we have a.jar & b.jar while both are compiled and b.jar use a.jar, than some one change (in a.jar ) interface A{ this some(); } to: interface A{ A some(); } because he want to return other object...

this would work in pretty unexpected way.

BTW. Did you wander if Interfaces / abstract classes should be final (with explicit declared classes/interfaces available for inheritance), like: final interface A allow Ab, Ac{...} this was my idea connected to inheritance security.

-- Pozdrowionka. / Regards. Lasu aka Marek Kozieł

http://lasu2string.blogspot.com/



More information about the coin-dev mailing list