All variables in Java must be final

I haven’t been using the final keyword in Java for 10 years, but more and more I think it’s an excellent keyword in Java. All local variables should be declared final. Today one of the developers of my team made every local variable in a method final and I was wondering how strange that looked. But of course it was the right thing to do. Declaring all variables final will lead to less bugs (logic and typos e.g.).

If you reassign a variable you most probably do something wrong. I’ll bet if you reassign a variable your method does at least two different things though every method should only do one thing. As should a class. Final also goes for method parameters, all should be final. Others think so too even for methods.

How do you deal with final attributes? When making most attributes final, just initialize them in the constructor. Immutable objects also play nicely with Tell, don’t ask.

All these final keywords around your code create noise though. It would be best to have all variables automatically be final and have a new transient keyword for reassignable variables. Or at least for my IDE – Intellij IDEA – to hide the final keyword and write the variable in a different color. Hear me IDEA developers!

Update: After some more work with Scala, var and val are a good solution.

66 thoughts on “All variables in Java must be final”

  1. Pingback: フルボ時計
  2. Pingback: ??? ?? ?????????
  3. Pingback: NIKE SB
  4. Pingback: 子供水着
  5. Pingback: スント 時計
  6. Pingback:
  7. Pingback: parajumpers jakke
  8. Pingback: parajumpers salg
  9. Pingback: parajumpers norge
  10. Pingback: roger vivier shoes
  11. Pingback: ?? ???? ???
  12. Pingback: ???c ?????
  13. Pingback: ??? ???? ??????
  14. Pingback: ??? ????? ???

Comments are closed.