I think
a) that all instance fields that *can* be immutable *should* be immutable
(helps a lot in making sure the code is thread-safe)
b) that all instance fields that are supposed to be immutable should be
declared as final, IMO it makes the code *more* readable

I usually don't declare local variables as final but it would not disturb
me at all if someone did.

But I didn't contribute any code to Mina code for years, so it's not very
relevant what I think ;-)

Regards
Maarten

On Wed, Jan 30, 2013 at 2:08 PM, Emmanuel Lécharny <[email protected]>wrote:

> Le 1/30/13 10:29 AM, Steve Ulrich a écrit :
> > Hi!
> > Sorry, can't resist to respond on this, since i'm paranoid at
> programming ;-)
> >
> >> Emmanuel Lécharny [mailto:[email protected]] wrote
> >>
> >> there are a lot of methods which have parameters with a 'final'
> >> keyword.
> >> It's most certaibly a IDE configuration, but it's really annoying.
> > It looks ugly, true. But I have seen so many method like:
> >
> > myMethod (Param parameter) {
> > ...
> > parameter = new Param();
> > ...
> > }
>
> Yes, me too, and I told the junior to review there code and lecture them
> so that they don't do the same mistake again.
>
> We aren't junior developpers, and I don't want to have to add such
> finals all over - even if the IDE does that for me - : t's just a waste
> of time, and makes the code ugly, so more painful to read, and I favor
> my own comfort over a potential error that never occurs in the code we
> write.
> >
> > IMHO Oracle should make parameter implicit final!
> Ys, and many other things that SUN - not Oracle - have missed would be
> great to have in Java. But it's not really a problem in this case.
> > I don't mark my parameters as final, because it makes the parameter list
> hard to read. But I can understand anyone who does so!
> Same for me, but I don't understand why people does so. This is a dead
> stupid idea pushed by people who aren't confident with the code they
> have outsourced somewhere in asia for 5$ an hour...
> >
> >> Can those who have this configuration set in their IDE change it so
> >> that
> >> the committed code does not anymore contain the final keyword
> >> everywhere ?
> >>
> >> I personnaly think that the final keyword is useful in two cases :
> >> - for static fields, like in private statif final int CONSTANT = xxx
> >> - for variable thet are to be accessed by inner classes
> > - for (class/object) variables that are not expected to change anymore.
> >
> > Declaring an AtomicInteger as non-final is a potential threading issue!
> Anyone could replace it with a new object, rendering the synchronisation
> useless.
> > The same is true for concurrent collections, locks, monitors, etc. If
> you don't expect (or want) it to change - make it final.
> > The use of local variables shouldn't be that complex, that they need a
> final statement.
> This is a third case, I forgt about it, but this is a perfectly valid one.
> >
> >> Side note :
> >> I know that some may consider that using final for method parameters is
> >> a way to protect a stupid coder against a modification of a variable.
> >> Yeah, sure... But we are not stupid coders, are we ?
> > I'm writing perfect code, but somehow the code changes over time. When
> I'm looking into my code a year later, it looks like a drunken monkey hit
> on a keyboard ;-)
> I'm writing crappy code, and I know that, so I'm extra cautious. But I'm
> not relying on stupid rules as a safety belt...
>
> But this is just me :)
>
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>
>

Reply via email to