Women in Technology

Hear us Roar

  Seven Low-Cost Ways to Improve Legacy Code
Subject:   Heuristics vs Rules
Date:   2004-06-09 14:57:57
From:   Kevin O'Neill
One issue I have when presenting these sort of things to junior developers (or even seniors who have lost their way :)) is to make them understand that these this represent "rules of thumb" as apposed to "rules of law".

I'm interested in the following statement.

Every parameter to a method should be declared final unless the parameter is intended to be an out or in-out parameter.

Now am I a big user of final but I don't understand how it effects out or in-out parameters. Even if the instance reference is declared final it's contents can be modifed. In fact for out or in-out parameters (ie parameters whose internal structure you are going to modify) you should always declare them as final to ensure that method code does not change the refered to instance. Or is there something that I'm missing?

Main Topics Oldest First

Showing messages 1 through 1 of 1.

  • Heuristics vs Rules
    2004-10-27 15:39:47  dubwai [View]

    No, you are not missing anything. Making the parameter final has no effect on anything but the method body. Generally I don't bother with setting variables final except in setters or constructors (i.e. when the parameter and a member could be confused) but I guess if you are paranoid it makes sense to always do it.

    Regardless, Java is always pass by value so the author's comment is very odd. I'm actually quite concerned by it. Any intermediate Java developer knows there's no 'out parameters' in Java. At least not directly.