Come NON visualizzare stringhe null?

di il
1 risposte

Come NON visualizzare stringhe null?

Salve a tutti,
ho un ArrayList (container_combinazioni) dove ogni suo elemento è costituito da un vettore di 4 String. Vorrei stampare a video, per ogni elemento di container_combinazioni, SOLO le stringhe NON nulle; ogni elemento di container_combinazioni è inizializzato con un array di 4 String con valore null. Questo è il codice relativo alla visualizzazione che ho scritto:

....
for(String[] elem : container_combinazioni)
{
	for(i=0; i<N; i++)
	{
		if(!elem[i].equals(null))//if(elem[i].length()!=0)//qui mi solleva l' eccezione
			System.out.print(elem[i]);
	}
	System.out.println();
}
che però mi solleva la seguente eccezione:

Exception in thread "main" java.lang.NullPointerException
anche se uso l' istruzione che ho commentato (dopo il \\).
Perchè mi solleva tale eccezione? Come risolvere la cosa?

1 Risposte

  • Re: Come NON visualizzare stringhe null?

    Salva ha scritto:


    
    		if(!elem[i].equals(null))//if(elem[i].length()!=0)//qui mi solleva l' eccezione
    
    Perchè mi solleva tale eccezione? Come risolvere la cosa?
    Innanzitutto se una variabile (o elemento di array) di tipo reference contiene null su questa NON può invocarci alcun metodo (o accedere ad un field). Né equals() né length() né altro (altrimenti hai NullPointerException).

    Inoltre fare: xyz.equals(null) è sempre sbagliato e inutile. La specifica di equals() è molto chiara (da documentazione javadoc):
    For any non-null reference value x, x.equals(null) should return false.
    La soluzione è di una banalità disarmante:
    if (elem[i] != null) {
        // qui allora puoi invocare elem[i].qualcosa()
    }
Devi accedere o registrarti per scrivere nel forum
1 risposte