In alcuni dei nostri progetti companys codice Leggo spesso qualcosa di simile:Inizializzazione di un booleano con un valore booleano.FALSE/.TRUE - perché?
boolean foo = Boolean.FALSE;
Oltre al fatto che per quanto ne so io hanno solo per inizializzare le variabili locali in Java a tutti (senza valori casuali come in Pascal) e oltre il Infatti, soprattutto per i booleani, VOGLIO spesso avere un'inizializzazione, cosa mi manca qui? Perché no:
boolean foo = false;
Non capisco. E anche gli strumenti di analisi del codice come PMD e Findbugs lo contraddistinguono. Ma perché?
Modifica: Senza sapere molto sul bytecode tranne che è lì ho creato una classe di esempio e decompilato. Il Boolean.FALSE è andato a:
0: getstatiC#15 // Field java/lang/Boolean.FALSE:Ljava/lang/Boolean;
3: invokevirtual #21 // Method java/lang/Boolean.booleanValue:()Z
6: istore_1
La variante 'false' andato a:
0: iconst_1
1: istore_1
Quindi, senza sapere troppo su questo, direi che più istruzioni significa più tempo per eseguire in modo non è solo sbagliato, ma anche più lento nel lungo periodo.
Dogmatismo, immagino. –
Il primo è solo un uso sbagliato. Sebbene si possa obiettare che ogni possibile stile che rende il codice ancora più prolisso è quasi ** idiomatico ** in Java. –
Questo potrebbe essere per assicurarsi che se Boolean (back-end) dovesse mai cambiare, questo assicurerà che il codice funzioni sempre ..? Sembra strano – OmniOwl