I come from a C#.net background and whenever I had a string I was declaring it as String.Empty
Now I am looking at a Java code from a co-worker and he has declared his strings in a method like this:
String myStr = null;
I don’t like it, and even worse, he is assigning values to these strings in an “IF” block where it may or may not even qualify, and then at the end of the method he is calling a myStr.length() on them.
So my question is what is a preferred way in Java? do you think is it better to define them as String.Empty OR leave them as null and do a null check just before calling .length() on them?
In general, using
nullvalues is a bad idea, especially if they are returned from a method or passed to another method. Using the Null Object pattern is better, and in a string’s case the Null Object is an empty string. By consistently avoiding nulls, the probability of getting a NullPointerException gets smaller and the code becomes more readable (this is discussed at length in Clean Code chapter 7, pages 110-112).In Java
String s = ""does not allocate any memory, because the JVM will have interned the string literal, so there isn’t even a performance difference (and even if there were, it would be a premature optimization).