Igor Kromin |   Consultant. Coder. Blogger. Tinkerer. Gamer.

This is an instalment of my Code Odium series of articles talking about bad programming practices with focus on Java. In this article I will talk about why splitting up variable declaration and assignment is unnecessary.
code_issues.jpg


I happen across a surprising amount of code that can be improved and recently I've been noticing in quite a few places where variable declaration and assignment has been split up. This ends up with code that looks something like this...
 Java
private String myMethod() {
String myString;
myString = "myString";
...
}


That got a raised eyebrow response from me so I did some investigation and it turned out that quite a number of IDEs actually flag single line declaration and assignment and offer to 'fix' it...
var_splitting.png




So why is splitting up declaration and assignment like this unnecessary? It really comes down to the number lines you end up writing and the complexity cues you leave. For a simple assignment like above, splitting up declaration and assignment makes code harder to follow - you have to read two lines instead of one to understand the meaning. It also implies that a more complex or conditional assignment should be in place and maybe there's something missing since it's just a simple assignment instead.

So I would always write something like this...
 Java
private String myMethod() {
String myString = "myString";
...
}


One line declaration and assignment. There is no way to misinterpret the intention there.

I did mention complex or conditional assignments earlier. In this situation it is ok and in fact mandatory to split up declaration and assignment. These cases are the only places where splitting like that should be done though. For example...
 Java
private String myMethod(boolean codingIsCool) {
String myString;
if (codingIsCool) {
myString = "Coding is cool";
}
else {
myString = "Get outta here!";
}
...
}


So there you go, the basic rule of thumb is do not split up variable declaration and assignment unless there is some complex/conditional logic that governs the value assigned to that variable.

-i

A quick disclaimer...

Although I put in a great effort into researching all the topics I cover, mistakes can happen. Use of any information from my blog posts should be at own risk and I do not hold any liability towards any information misuse or damages caused by following any of my posts.

All content and opinions expressed on this Blog are my own and do not represent the opinions of my employer (Oracle). Use of any information contained in this blog post/article is subject to this disclaimer.
Hi! You can search my blog here ⤵
NOTE: (2022) This Blog is no longer maintained and I will not be answering any emails or comments.

I am now focusing on Atari Gamer.