Alle opzioni JDT Core è possibile accedere mediante alcune API. Tali API si trovano in JavaCore. Per modificare le opzioni sono necessari solo quattro metodi:
Le opzioni sono modificate come una tabella hash di tutte le opzioni configurabili conosciute con i relativi valori. Le costanti dell'helper sono state definite in JavaCore per ciascun ID di opzione e i relativi valori di costante possibili.
Per configurare JDT Core con le sole proprie opzioni, è possibile utilizzare il seguente frammento di codice:
// Ottenere le opzioni correnti
Hashtable options = JavaCore.getDefaultOptions();
// Modificare il valore di un'opzione
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Impostare le nuove opzioni
JavaCore.setOptions(options);
Per mantenere le opzioni correnti e modificare solo una di esse:
// Ottenere le opzioni correnti
Hashtable options = JavaCore.getOptions();
// Modificare il valore di un'opzione
options.put(JavaCore.COMPILER_PB_DEPRECATION, JavaCore.ERROR);
// Impostare le nuove opzioni
JavaCore.setOptions(options);
L'elenco di tutte le opzioni JDT Core è riportato nelle tabelle seguenti. Tutte le tabelle presentano la stessa organizzazione con l'ID dell'opzione tra parentesi e il valore predefinito in carattere corsivo grassetto.
Descrizione | Valori |
---|---|
Generazione di attributo di debug di variabile locale (COMPILER_LOCAL_VARIABLE_ATTR) | |
Quando generato, questo attributo abiliterà la visualizzazione dei nomi di variabili locali nel debugger, solo nelle posizioni in cui le variabili sono assegnate in maniera definitiva (il file .class è pertanto il più ampio) | GENERATE |
DO_NOT_GENERATE | |
Generazione di attributo di debug del numero di riga (COMPILER_LINE_NUMBER_ATTR) | |
Quando generato, questo attributo abiliterà l'evidenziazione del codice sorgente nel debugger (il file .class è il più ampio). | GENERATE |
DO_NOT_GENERATE | |
Generazione di attributo di debug del codice sorgente (COMPILER_SOURCE_FILE_ATTR) | |
Quando generato, questo attributo abiliterà la presentazione del codice sorgente. | GENERATE |
DO_NOT_GENERATE | |
Conservazione di variabili locali non utilizzate (COMPILER_CODEGEN_UNUSED_LOCAL) | |
A meno che non sia richiesta la conservazione di variabili locali non utilizzate (ad esempio mai lette), il compilatore le ottimizzerà, alterando potenzialmente il debug. | PRESERVE |
OPTIMIZE_OUT | |
Definizione della piattaforma Java di destinazione (COMPILER_CODEGEN_TARGET_PLATFORM) | |
Per motivi di compatibilità binaria, i file .class possono essere codificati con determinate versioni di VM. Si noti che la destinazione "1.4" richiede l'attivazione delle modalità di compatibilità anche per "1.4". | VERSION_1_1 |
VERSION_1_2 | |
VERSION_1_3 | |
VERSION_1_4 | |
Report di codice non raggiungibile (COMPILER_PB_UNREACHABLE_CODE) | |
Il fatto che il codice non sia raggiungibile può essere riportato come un errore, un avviso o semplicemente essere ignorato. La generazione di codice di byte ne comporterà comunque l'ottimizzazione. | ERROR |
WARNING | |
IGNORE | |
Report di importazione non valida (COMPILER_PB_INVALID_IMPORT) | |
Un'istruzione che non può essere risolta può essere riportata come un errore, un avviso o semplicemente essere ignorata. | ERROR |
WARNING | |
IGNORE | |
Report del tentativo di ricoprire il metodo predefinito del pacchetto (COMPILER_PB_OVERRIDING_PACKAGE_DEFAULT_METHOD) | |
Il metodo predefinito di un pacchetto non è visibile in un pacchetto diverso e quindi non può essere sostituito. Quando si abilità questa opzione, il compilatore segnalerà tali scenari sia come un errore che come un avviso. | ERROR |
WARNING | |
IGNORE | |
Report del metodo con il nome del costruttore (COMPILER_PB_METHOD_WITH_CONSTRUCTOR_NAME) | |
Assegnare a un metodo il nome di un costruttore viene considerata una strategia di programmazione poco valida. Quando si attiva tale opzione, il compilatore segnalerà questi scenari come un errore o come un avviso. | ERROR |
WARNING | |
IGNORE | |
Report di deprecation (COMPILER_PB_DEPRECATION) | |
Quando si attiva questa opzione, il compilatore segnalerà l'uso di una tale API come un errore o un avviso. | ERROR |
WARNING | |
IGNORE | |
Report di blocco catch nascosto (COMPILER_PB_HIDDEN_CATCH_BLOCK) | |
Vicino a un'istruzione try alcuni blocchi catch potrebbero nasconderne altri, ad esempio
try { throw new java.io.CharConversionException(); } catch (java.io.CharConversionException e) { } catch (java.io.IOException e) {}.Quando si attiva questa opzione, il compilatore genererà un errore o un avviso per i blocchi catch nascosti che corrispondono alle eccezioni controllate |
ERROR |
WARNING | |
IGNORE | |
Report di variabili locali non utilizzate (COMPILER_PB_UNUSED_LOCAL) | |
Quando è attivata questa opzione, il compilatore genererà un errore o un avviso per le variabili locali non utilizzate (ad esempio variabili mai lette) | ERROR |
WARNING | |
IGNORE | |
Report di parametri non utilizzati (COMPILER_PB_UNUSED_PARAMETER) | |
Quando è attivata questa opzione, il compilatore genererà un errore o un avviso per i parametri di metodo non utilizzati (ad esempio parametri mai letti) | ERROR |
WARNING | |
IGNORE | |
Report di riferimenti di importazione non utilizzati (COMPILER_PB_UNUSED_IMPORT) | |
Quando questa opzione è attivata, il compilatore genererà un errore o un avviso per i riferimenti di importazione non utilizzati | ERROR |
WARNING | |
IGNORE | |
Report di emulazione di accesso sintetica (COMPILER_PB_SYNTHETIC_ACCESS_EMULATION) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che emula l'accesso a un membro non accessibile di un tipo superiore. Tale accesso può avere implicazioni nelle prestazioni. | ERROR |
WARNING | |
IGNORE | |
Report di variabile letterale non esternalizzata (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
Quando è attivata questa opzione, il compilatore genererà un errore o un avviso per le variabili letterali non esternalizzate (cioè non contrassegnate dal tag //$NON-NLS-<n>$) | ERROR |
WARNING | |
IGNORE | |
Report dell'utilizzo dell'identificativo 'assert' (COMPILER_PB_ASSERT_IDENTIFIER) | |
Quando è attivata questa opzione, il compilatore genererà un errore o un avviso ogni volta che 'assert' viene utilizzato come identificativo (parola chiave riservata in 1.4) | ERROR |
WARNING | |
IGNORE | |
Impostazione della modalità di compatibilità del codice sorgente (COMPILER_SOURCE) | |
Specifica se il codice sorgente è compatibile con 1.3 o 1.4. A partire da 1.4, 'assert' è una parola chiave riservata per il supporto dell'asserzione. Si noti inoltre che quando si passa alla modalità 1.4, il livello VM di destinazione e la modalità di compatibilità devono essere "1.4". | VERSION_1_3 |
VERSION_1_4 | |
Impostazione del livello di compatibilità (COMPILER_COMPLIANCE) | |
Selezionare il livello di compatibilità per il compilatore. Nella modalità "1.3", le impostazioni di origine e destinazione non devono essere al di là del livello "1.3". | VERSION_1_3 |
VERSION_1_4 | |
Numero massimo di problemi riportati per unità di compilazione (COMPILER_PB_MAX_PER_UNIT) | |
Specificare il numero massimo di problemi riportati su ciascuna unità di compilazione (se il massimo è pari a zero verranno riportati tutti i problemi). | un numero intero positivo. Il valore predefinito è 100 |
Descrizione | Valori |
---|---|
Specificazione dei filtri per il controllo della copia della risorsa (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
Specificare i filtri per controllare il processo di copia della risorsa. (<name> è un modello di nome file (sono consentiti solo caratteri jolly *) oppure il nome di una cartella che termina con '/') | {<name>[,<name>]*}. Il valore predefinito è "" |
Interruzione in caso di percorso classi non valido (CORE_JAVA_BUILD_INVALID_CLASSPATH) | |
Indicare al generatore di interrompersi se il percorso classi non è valido. | ABORT |
IGNORE |
Descrizione | Valori |
---|---|
Calcolo dell'ordine di build di progetto (CORE_JAVA_BUILD_ORDER) | |
Indicare se JavaCore deve imporre che l'ordine di build di progetto si basi sulla catena di prerequisiti del percorso classi. Quando viene richiesto, il calcolo sostituisce l'ordine predefinito della piattaforma (basato sui riferimenti di progetto). | COMPUTE |
IGNORE | |
Specifica il formato di codifica del codice sorgente predefinito (CORE_ENCODING) | |
Ottenere il formato di codifica per il codice sorgente compilato. Questa è un'impostazione di sola lettura ed è equivalente a ResourcesPlugin.getEncoding(). | ciascun nome di codifica supportato Il valore predefinito è quello predefinito della piattaforma |
Descrizione | Valori |
---|---|
Inserimento di una nuova riga prima della parentesi di apertura (FORMATTER_NEWLINE_OPENING_BRACE) | |
Durante questa operazione viene inserita una nuova riga prima della parentesi di apertura, altrimenti non è possibile inserire alcun elemento | INSERT |
DO_NOT_INSERT | |
Inserimento di una nuova riga all'interno di un'istruzione di controllo (FORMATTER_NEWLINE_CONTROL) | |
Viene inserita una nuova riga tra } e i successivi else, catch, finally | INSERT |
DO_NOT_INSERT | |
Eliminazione di righe vuote (FORMATTER_CLEAR_BLANK_LINES) | |
Quando si selezione Elimina tutto, vengono rimosse tutte le righe vuote. Quando si selezione Conserva una, viene conservata solo una riga mentre le altre vengono rimosse | CLEAR_ALL |
PRESERVE_ONE | |
Inserimento di una nuova riga tra Else/If (FORMATTER_NEWLINE_ELSE_IF) | |
Quando si selezione Inserisci, viene inserita una riga vuota tra un else e un if quando sono contigui. Quando si sceglie di non effettuare alcun inserimento, else-if si conserveranno sulla stessa riga per quanto possibile. | INSERT |
DO_NOT_INSERT | |
Inserimento di una nuova riga in un blocco vuoto (FORMATTER_NEWLINE_EMPTY_BLOCK) | |
Quando si selezione Inserisci, viene inserita un'interruzione di riga tra { e } contigue, se } non è seguita da una parola chiave. | INSERT |
DO_NOT_INSERT | |
Suddivisione di righe che superano la lunghezza (FORMATTER_LINE_SPLIT) | |
Abilita la divisione di righe lunghe (eccedenti la lunghezza configurabile). Una lunghezza pari a 0 disabiliterà la suddivisione di righe | un numero intero positivo. Il valore predefinito è 80 |
Compattazione di assegnazione (FORMATTER_COMPACT_ASSIGNMENT) | |
Le assegnazioni possono essere formattate in maniera asimmetrica, ad esempio 'int x= 2;', quando è normale, viene inserito uno spazio prima dell'operatore di assegnazione | COMPACT |
NORMAL | |
Definizione del carattere di rientro (FORMATTER_TAB_CHAR) | |
Per il rientro è possibile scegliere sia i caratteri di tabulazione che gli spazi | TAB |
SPACE | |
Definizione della lunghezza del rientro dello spazio (FORMATTER_TAB_SIZE) | |
Quando si utilizzano spazi, impostare la quantità di caratteri di spazio da utilizzare per ogni rientro. | un numero intero positivo. Il valore predefinito è 4 |
Descrizione | Valori |
---|---|
Attiva il completamento sensibile alla visibilità (CODEASSIST_VISIBILITY_CHECK) | |
Quando è attivo, il completamento non mostra l'impossibilità di visualizzazione (ad esempio non è possibile visualizzare i metodi privati di una classe super). | ENABLED |
DISABLED | |
Qualifica automatica di membri impliciti (CODEASSIST_IMPLICIT_QUALIFICATION) | |
quando l'opzione è attiva, il completamento esegue automaticamente la qualifica su riferimenti di campi impliciti ed espressioni di messaggi. | ENABLED |
DISABLED |