mio IDE (IntelliJ IDEA) mi sta dicendo che ho la possibilità di rimuovere le parentesi graffe su questo if:È necessario evitare più istruzioni if come "if (condition) if (condition) ..." in Java?
if (objectIsOfTypeFoo) {
if (objectOfTypeFooIsShared) {
// do something with Object of type Foo knowing that it's shared...
} else {
// do something with Object of type Foo knowing that it's not shared...
}
} else if (objectIsOfTypeBar) {
...
}
Per diventare:
if (objectIsOfTypeFoo) if (objectOfTypeFooIsShared) {
// do something with Object of type Foo knowing that it's shared...
} else {
// do something with Object of type Foo knowing that it's not shared...
} else if (objectIsOfTypeBar) {
...
}
Capisco come questo ha un senso, e è allettante perdere il trattino, ma la mia preoccupazione è che la leggibilità possa risentirne. Quest'ultimo aspetto è più pulito, ma lo spazio risparmiato vale la potenziale confusione?
Suppongo che la differenza di prestazioni tra i due sia banale, se non del tutto.
E come domanda successiva: Esiste un limite al numero di "se" (condizione) che è possibile inserire in una singola riga, o piuttosto a che punto è diventato troppo?
Il primo esempio è più leggibile ed è meno probabile che causi problemi a causa di parentesi graffe mancanti - IMHO – MadProgrammer
La differenza di prestazioni in fase di esecuzione è nullo, poiché il codice gen per entrambe le versioni è identico. La differenza di prestazioni al momento della compilazione è il costo di lessare un paio di parentesi graffe aggiuntive. Quindi niente. Oh, e ignori l'IDE: sta offrendo (secondo me) un orribile consiglio. – dlev
Non ho mai visto IntelliJ raccomandare una cosa del genere. Controllerò le tue impostazioni di stile. – duffymo