Sei corretto sull'ordine del controllo - se la variabile è nullo, chiamare .equals sulla costante di stringa impedirà un NPE - ma non sono sicuro di considerarlo una buona idea; Personalmente lo chiamo "slop".
Lo slop è quando non si rileva una condizione anormale, ma in effetti si creano abitudini per evitare di essere scoperti. Passare intorno a un null come stringa per un lungo periodo di tempo porterà infine a errori che potrebbero essere oscuri e difficili da trovare.
La codifica per lo slop è l'opposto di "Fail fast fail hard".
L'utilizzo di un null come stringa può occasionalmente apportare un valore "Speciale", ma il fatto che si stia cercando di confrontarlo con qualcosa indica che la comprensione del sistema è incompleta (nella migliore delle ipotesi) - prima si trovare questo fatto, meglio è.
D'altra parte, rendere tutte le variabili finali per impostazione predefinita, utilizzando Generics e riducendo al minimo la visibilità di tutti gli oggetti/metodi sono abitudini che riducono lo slop.
fonte
2010-07-13 20:40:22
Se si sta scrivendo un manuale tecnico, è necessario preoccuparsi di problemi grammaticali più grandi di una semplice avvertenza di codifica come questa. – Zak
@Zak, che non è veramente rilevante. Come sai che il manuale sarà in inglese? Forse Xerg scrive fluentemente in un'altra lingua e sta creando il manuale in quella lingua. Tutti quelli che hanno risposto sono riusciti a capire quale fosse il punto cruciale della domanda. –
Non sto scrivendo alcun manuale. Sto solo controllando. Scusa il mio inglese, sono un lettore migliore dello scrittore. – Xerg