2011-09-14 8 views
14

Faccio spesso affidamento sul codice sorgente JDK per capire come implementare un'interfaccia e spesso utilizzo uno stile di indentazione molto strano. Per esempio, in DefaultCellEditor.java:Perché il codice sorgente della libreria Java è così stranamente rientrato?

public DefaultCellEditor(final JTextField textField) { 
    editorComponent = textField; 
this.clickCountToStart = 2; 
    delegate = new EditorDelegate() { 
     public void setValue(Object value) { 
    textField.setText((value != null) ? value.toString() : ""); 
     } 

    public Object getCellEditorValue() { 
    return textField.getText(); 
    } 
    }; 
textField.addActionListener(delegate); 
} 

Mi chiedo se questo è dovuto al mio IDE o no, dal momento che ho trovato questo tipo di rientro molto strano e difficile da leggere.

+2

Che IDE stai utilizzando? –

+0

È questo codice sorgente o decompilato dall'IDE? –

+0

@david Netbeans 6.9.1 e stesso risultato con 7.0.1. Potrei indagare se anche i pacchetti core sembrano uguali o meno. –

risposta

3

Se il rientro è coerente tra diversi metodi, c'è probabilmente un motivo (non scritto) per cui è così.

Se non c'è nessuna rima o ragione, quindi (a) il codificatore (s) non si preoccupa di indentazione, o (b) il codificatore (s) ha fatto attenzione, e qualcosa è successo in rotta verso il computer. Il probabile colpevole è che non è stata prestata sufficiente attenzione al modo in cui le schede e gli spazi sono stati utilizzati per strutturare il codice e le impostazioni dell'indentazione dell'IDE per le schede sono diverse da quelle dell'ultima persona che ha toccato il codice.

Se è possibile rendere visibili i caratteri di spaziatura nell'editor di testo, questo dovrebbe indicare se è stato utilizzato un mix di tabulazioni e spazi.

+1

Peccato che non possa accettare tutte le risposte. L'errore in effetti deriva da un'incoerenza nel codice sorgente: alcune linee sono rientrate con le schede, altre con spazi. Costringere le schede a essere renderizzate con 8 spazi ha risolto il problema, ma questo porta a un'altra domanda: perché stanno mescolando tab e spazi? Committer diversi con stili di codifica diversi ... dovrebbero prestare attenzione a questo. –

+0

Giusto. La conversione di schede in spazi può essere effettuata all'interno dell'IDE. Nel mio, ogni volta che spingo il tasto TAB, vengono inseriti quattro spazi. Le schede non inseriscono mai il mio codice. – John

3

Sospetto che l'IDE stia ignorando o interpretando in modo errato i caratteri di tabulazione.

+4

Quindi la domanda passa a "perché stanno mescolando tab e spazi". – delnan

+0

Come ho commentato la domanda, delnan, è davvero il caso: le schede sembrano essere mescolate con gli spazi, per la felicità di tutti :) –

+0

No, l'IDE è corretto. L'indentazione è davvero così. –

1

Una possibilità è il problema di IDE/editor sul lato dell'autore.

Nei giorni PHP ho utilizzato l'editor PSPad che fa qualcosa di molto simile a questo: nel rientro di PSPad sembra OK ma in altri spettatori/editor i rientri vengono distrutti. AFAIK ha qualcosa a che fare con il missaggio di spazi con tabulatori e diverse larghezze di tabulazione.

2

Sembra che NetBeans formatta il codice del codice sorgente di Java (src.jar). Ho estratto il barattolo manualmente e ho aperto javax/swing/DefaultCellEditor.java utilizzando un editor di testo semplice e il rientro è davvero così brutto. Quindi, è non l'IDE.

Ma perché l'indentazione è così male; scusa, non lo so.

+0

Sì, il buon vecchio editor di testo potrebbe utilizzare 4 spazi per le schede e non 8 :) –

Problemi correlati