Implicit 'this' return for void methods

Victor Polischuk victor2 at
Fri Mar 28 04:57:08 UTC 2014


I think that point leading style is something which can be easily mistreat. If we complicate the example:

   String mySub = myVeryLongNamedString.substring(.indexOf("C"),.indexOf("Q"));

to something like:

   String mySub = myVeryLongNamedString.concat("BLAH").substring(.indexOf("C"),.indexOf("Q"));

it is not 100% clear which object will be applied for ".indexOf" method, either (myVeryLongNamedString) or (myVeryLongNamedString + "BLAH"). Also I believe that the need of executing the instance methods to get parameter values for its another method is an API issue. Helpers like StringUtils from commons-lang resolve this particular case and many similar. Moreover, the helper correctly takes care of the situation when Q meets before C which means you would not use the feature like in above (even if it is implemented).

However, I totally agree that the "chaining" feature should be done as a compiler time AST modification to allow using legacy APIs without recompilation and keep byte-code, existing APIs and various conventions untouched.

Victor Polischuk

 --- Original message ---
 From: "Ulf Zibis" <ulf.zibis at>
 Date: 28 March 2014, 00:30:45

> Am 27.03.2014 23:05, schrieb Eirik Lygre:
> > With this suggested change, the only behavior that will change is that some code which used to not 
> > compile will start compiling, with a reasonable result. No code that used to compile will change.
> Yes, this is one of the great advantages of this "simple" _language_ change proposal !
> -Ulf

More information about the core-libs-dev mailing list