I due if non sono equivalenti. Il && (come || ) è un operatore con comportamento "short circuit". Se il primo operando è già tale per cui è possibile dedurre il risultato complessivo, allora il secondo operando non viene nemmeno valutato/usato in alcun modo.
Se vuoi fare "qualcosa" se e solo se cella NON è vuota (che presuppone non null E non stringa vuota "" ), solo il secondo if che ti ho detto io è corretto.
Con if (cella != null && cella.compareTo("") != 0)
Se cella è null, la parte dopo && NON viene assolutamente valutata. E questo salva da qualunque NullPointerException.
Mentre in quella che hai detto tu, viene subito fatto cella.compareTo("") quindi se cella è null ti becchi l'eccezione.



Rispondi quotando