Per prima cosa chiariamo qualcosa: dici che dopo aver assegnato un valore nullo alla variabile potresti dimenticarti di inizializzarlo, ma assegnando null ad esso stai effettivamente inizializzandolo.
public static void main (String args[]){
String s;
System.out.println(s); // compiler error variable may not be initialized
}
vs
public static void main (String args[]){
String s=null;
System.out.println(s); // no compiler error
System.out.println(s.equals("helo")); // but this will generate an exception
}
Quindi, dopo aver fatto String s=null;
, non c'è modo di dimenticare di inizializzare perché lo hai inizializzato.
Essendo chiaro, ti consiglierei di usare un "default intelligente". Nel tuo caso forse la stringa vuota ""
sarebbe un buon valore predefinito se vuoi evitare NullPointerException
. D'altra parte, a volte è auspicabile che il programma produca un'eccezione perché indica che qualcosa di sbagliato è successo sotto il cofano che non avrebbe dovuto accadere.