Just to be clear - I'm not arguing against the concept of method chaining
because of some stylistic / personal preference point, but from a practical
production diagnostic point, when you need to be able to definitively fix
the problem once, and once only. Pushing a temporary release out with
additional logging (or breaking apart a method chain into separate method
calls per line) that will assist you the *next* time the bug happens just
isn't acceptable to some businesses - something I don't disagree with. It's
for this reason, and this reason only, that we don't use method chaining.
It's purely risk mitigation.

I logged the RFE with Oracle - who knows if I'm the first to log such a
request, or whether anything will come of it.

For comparison, look at the stack trace output from a simple C# program.

Regards

Nick


On Fri, Jan 31, 2014 at 10:37 AM, tetsuo <ronald.tet...@gmail.com> wrote:

> Making 'void' methods return 'this' doesn't prevent you to write each call
> in a new line. But gives others the choice to call it inline.
>
> It could be a problem if Wicket's internal code used chaining extensively,
> but I find it very convenient to chain calls, specially when building the
> component tree for a page. If you break lines in the right places, Eclipse
> indents it beautifully, if configured to not automatically join lines.
>
> I'd love to see this adopted throughout the API, but it will break
> compatibility everywhere you override these void methods (not if you just
> use them). Which is much less than other kinds of change, but still... I
> really like backwards compatibility :)
>
>
>
>
>
>
> On Fri, Jan 31, 2014 at 1:15 PM, Nick Pratt <nbpr...@gmail.com> wrote:
>
> > Which would be perfectly fine if the JVM told you which specific method
> > invocation on a source code line with chained methods threw an exception.
> >  While you can sometimes figure it out, you can't always, and an answer
> of
> > "if it happens again, we'll know how to fix it" just doesn't fly in
> certain
> > verticals.
> >
> > For our production code we don't allow it, and we strongly recommend that
> > our clients don't use it either.
> >
> > Perhaps I should log a RFE with Oracle.
> >
> > N
> >
> >
> > On Fri, Jan 31, 2014 at 9:32 AM, Martin Makundi <
> > martin.maku...@koodaripalvelut.com> wrote:
> >
> > > Java should natively chain all void instance methods...
> > >
> > > **
> > > Martin
> > >
> > >
> > > 2014-01-31 Sven Meier <s...@meiers.net>
> > >
> > > > I don't think it makes sense here:
> > > > In all of Wicket's code there's a single place only, where two
> metaData
> > > > entries are set consecutively.
> > > >
> > > > Sven
> > > >
> > > >
> > > > On 01/31/2014 03:08 PM, Martin Grigorov wrote:
> > > >
> > > >> Hi,
> > > >>
> > > >> What others think about
> > > https://issues.apache.org/jira/browse/WICKET-5459?
> > > >> Should Wicket use "return this" pattern where makes sense instead of
> > > >> 'void'
> > > >> return type ?
> > > >>
> > > >> One problem that I see is with:
> > > >> MyPage.doSomething() will/may return some base type of MyPage.
> > > >> I remember some trink for Java to make this simpler but AFAIR it
> > > involved
> > > >> some longer generics signature for the class that use it.
> > > >>
> > > >>
> > > >>
> > > >> Martin Grigorov
> > > >> Wicket Training and Consulting
> > > >>
> > > >>
> > > >
> > >
> >
>

Reply via email to