Comment by mywittyname
5 years ago
The latter example (without the redundant assignments) is preferred by people who do a lot of line-by-line debugging. While most IDEs allow you to set a breakpoint in the middle of an expression, that's still more complicated and error prone than setting one for a line.
I've been on a team that outlawed method chaining specifically because it was more difficult to debug. Even though I'm more of a method-chainer myself, I have taken to writing unchained code when I am working on a larger team.
var frobnitzBuilder = Frobnitz.builder();
frobnitzBuilder.withPixieDust();
frobnitzBuilder.withMayonnaise();
frobnitzBuilder.withTarget(worstTweetEver);
val frobnitz = frobnitzBuilder.build();
...is undeniably easier to step-through debug than the chained version.
Might depend on the debugger? The main ones I've used also let me go through the chained version one at a time, including seeing intermediate values.