Permettetemi innanzitutto di inizio con un codice di esempio ...Java - Stile di codifica: quali sono i contro e i pro del confronto di stringhe di stile "ABC" .equals ("SOMESTRING")?
String password = "";
if("PIRATE".equals(password)) {
// Do something
}
vedere qui, il String costante o letterale (qualunque cosa) "pirata" viene utilizzato per verificare l'uguaglianza delle due stringhe. Mentre ...
String password = "";
if(password.equals("PIRATE")) {
// Do something
}
questo funziona anche esattamente come il codice precedente.
Oggigiorno, vedo molto del primo stile "STRING_LITERAL" .equals (STRING_OBJECT), mentre le persone Java inviano il codice.
Quindi la mia domanda è, Da dove viene questo stile? e È meglio del secondo stile in alcun modo?
In effetti trovo il secondo stile più logico del primo, perché?!
consente di dare un requisito del genere, se l'utente fornito-password è uguale al "pirata" poi dare il permesso di quell'utente
quando si avvia l'attuazione del requisito di cui sopra,
String userProvidedPassword = getPaswordFromUser();
if(userProvidedPassword.equals("PIRATE")) {
// Allow him
}
Non è più logico di "PIRATE" .equals (userProvidedPassword);?! Basti pensare che ...
mi corregga se sbaglio .. Grazie ..
EDIT: Scusate, this question non è venuto nella mia ricerca precedente, e risponde alla mia domanda perfettamente. Anche grazie a tutti quelli che hanno dato una mano qui ..
Si evita un controllo nullo esplicito. Questo rende più conciso il codice. –
Con questo: 'userProvidedPassword.equals (" PIRATE ")' è necessario un ulteriore controllo nullo: 'userProvidedPassword! = Null && userProvidedPassword.equals (" PIRATE ")' – NINCOMPOOP