Le opzioni principali di JDT controllano il comportamento delle funzioni principali, quali il compilatore Java, il programma di formattazione del codice, l'assistente al codice e altri comportamenti principali. Le API per l'accesso alle opzioni sono definite in JavaCore. È possibile accedere alle opzioni come gruppo attenendosi a quanto segue:
È possibile accedere alle opzioni singolarmente da un nome stringa.
Le opzioni vengono memorizzate come una tabella hash di tutte le opzioni conosciute con i rispettivi valori. Le costanti dell'helper sono state definite su JavaCore per ciascun ID opzione, insieme ai possibili valori delle costanti.
Il frammento di codice di seguito riportato ripristina il valore di tutte le opzioni principali sui relativi valori predefiniti, eccetto per un valore (COMPILER_PB_DEPRECATION
), impostato in modo specifico.
// 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);
Il frammento di codice di seguito riportato mantiene il valore delle opzioni correnti, modificando solo un valore (COMPILER_PB_DEPRECATION
):
// 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);
I valori delle opzioni possono essere sovrascritti per ciascun progetto utilizzando il protocollo presente in IJavaProject.
Il frammento di codice di seguito riportato richiama il valore di un'opzione (COMPILER_PB_DEPRECATION
)
per un progetto specifico in due modi diversi. Il parametro booleano controlla se in una query devono essere restituite solo le opzioni specifiche del progetto o se i valori delle opzioni del progetto devono essere uniti ai valori presenti in JavaCore.
// Richiamare il progetto IJavaProject project = ...; // Controllare se il valore di un'opzione è stato impostato in questo progetto String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, false); if (value == null) { // nessuna specifica opzione è stata impostata nel progetto ... } // Ottenere il valore di un'opzione da questo progetto. Utilizzare il valore di // JavaCore se nessun valore è stato specificato per il progetto String value = project.getOption(JavaCore.COMPILER_PB_DEPRECATION, true);
La tabella di seguito riportata descrive le opzioni principali di JDT disponibili. L'ID opzione è in parentesi e il valore predefinito è in corsivo.
Descrizione | Valori |
---|---|
Generazione dell'attributo di debug delle variabili locali (COMPILER_LOCAL_VARIABLE_ATTR) | |
Se viene generato, l'attributo abilita la visualizzazione dei nomi delle variabili locali nel debugger solo nelle posizioni in cui le variabili sono assegnate definitivamente (la dimensione del file .class risulta, quindi, maggiore) | GENERATE |
DO_NOT_GENERATE | |
Generazione dell'attributo di debug del numero di riga (COMPILER_LINE_NUMBER_ATTR) | |
Se viene generato, questo attributo consente l'evidenziazione del codice di origine nel debugger (la dimensione del file .class risulta, quindi, maggiore) | GENERATE |
DO_NOT_GENERATE | |
Generazione dell'attributo di debug dell'origine (COMPILER_SOURCE_FILE_ATTR) | |
Se il valore viene generato, questo attributo abilita la presentazione della codifica di origine corrispondente nel debugger. | GENERATE |
DO_NOT_GENERATE | |
Preservazione delle variabili locali non utilizzate (COMPILER_CODEGEN_UNUSED_LOCAL) | |
A meno che non sia richiesto di preservare le variabili locali non utilizzate (ad esempio, quelle mai lette), il compilatore le ottimizzerà, alterando potenzialmente l'esecuzione del debug. | PRESERVE |
OPTIMIZE_OUT | |
Definizione della piattaforma Java di destinazione | |
Per motivi di compatibilità binaria, i file .class possono essere codificati con alcune versioni di VM. La modalità di destinazione "1.4" richiede la modalità di compatibilità "1.4". | VERSION_1_1 |
VERSION_1_2 | |
VERSION_1_3 | |
VERSION_1_4 | |
Codice non raggiungibile | |
Il fatto che il codice non sia raggiungibile può essere riportato come un errore, un avviso o semplicemente essere ignorato. La generazione di codici bytecode sarà sempre ottimizzata. | ERROR |
WARNING | |
IGNORE | |
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 | |
Tentativo di sovrascrivere il metodo predefinito di un 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 attiva questa opzione, il compilatore segnalerà la situazione come un errore o un avviso. | ERROR |
WARNING | |
IGNORE | |
Indicazione del metodo con il nome di un 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 questa opzione, il compilatore segnalerà la situazione come un errore o un avviso. | ERROR |
WARNING | |
IGNORE | |
Obsolescenza (COMPILER_PB_DEPRECATION) | |
Quando si attiva questa opzione, il compilatore segnalerà l'uso di una API obsoleta come un errore o un avviso. | ERROR |
WARNING | |
IGNORE | |
Obsolescenza all'interno di un codice obsoleto (COMPILER_PB_DEPRECATION_IN_DEPRECATED_CODE) | |
Quando si attiva questa opzione, il compilatore segnalerà l'uso di una API obsoleta come un errore o un avviso. | ENABLED |
DISABLED | |
Blocchi catch nascosti | |
Vicino a un'istruzione try, alcuni blocchi catch potrebbero nasconderne altri, ad esempiotry { 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 corrispondenti alle eccezioni controllate |
ERROR |
WARNING | |
IGNORE | |
Variabili locali non utilizzate | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso per le variabili locali non utilizzate (cioè le variabili da cui non si effettua mai una lettura) | ERROR |
WARNING | |
IGNORE | |
Parametri non utilizzati | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso per i parametri di metodo non utilizzati (cioè i parametri da cui non si effettua mai una lettura) | ERROR |
WARNING | |
IGNORE | |
Parametri non utilizzati nell'implementazione del metodo abstract (COMPILER_PB_UNUSED_PARAMETER_WHEN_IMPLEMENTING_ABSTRACT) | |
Quando si attiva questa opzione, il compilatore segnalerà i parametri non utilizzati nelle implementazioni del metodo abstract. | ENABLED |
DISABLED | |
Parametri non utilizzati nella sovrascrittura del metodo concreto (COMPILER_PB_UNUSED_PARAMETER_WHEN_OVERRIDING_CONCRETE) | |
Quando si attiva questa opzione, il compilatore segnalerà i parametri non utilizzati nei metodi che sovrascrivono i metodi concreti. | ENABLED |
DISABLED | |
Importazione non utilizzata (COMPILER_PB_UNUSED_IMPORT) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso per il riferimento a importazioni non utilizzate. | ERROR |
WARNING | |
IGNORE | |
Membri privati non utilizzati(COMPILER_PB_UNUSED_PRIVATE_MEMBER) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che un metodo o un campo privato viene dichiarato ma non viene mai utilizzato all'interno della stessa unità. | ERROR |
WARNING | |
IGNORE | |
Emulazione accesso sintetico | |
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 di inclusione. Tale accesso può incidere sulle prestazioni. | ERROR |
WARNING | |
IGNORE | |
Variabili letterali non esternalizzate (COMPILER_PB_NON_NLS_STRING_LITERAL) | |
Quando si attiva 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 | |
Utilizzo dell'identificativo 'assert' (COMPILER_PB_ASSERT_IDENTIFIER) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che 'assert' viene utilizzato come identificativo (parola chiave riservata in JDK 1.4) | ERROR |
WARNING | |
IGNORE | |
Riferimento non-static a un membro static (COMPILER_PB_STATIC_ACCESS_RECEIVER) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che si accede a un campo o a un metodo static con un ricevitore di espressione. | ERROR |
WARNING | |
IGNORE | |
Assegnazione senza effetto (COMPILER_PB_NO_EFFECT_ASSIGNMENT) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che un'assegnazione non produce alcun effetto (ad esempio 'x = x'). | ERROR |
WARNING | |
IGNORE | |
Metodo di interfaccia non compatibile con metodi non ereditati (COMPILER_PB_INCOMPATIBLE_NON_INHERITED_INTERFACE_METHOD) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che un'interfaccia definisce un metodo incompatibile con un oggetto non ereditato. | ERROR |
WARNING | |
IGNORE | |
Utilizzo di espressioni char[] in concatenazioni di stringhe (COMPILER_PB_CHAR_ARRAY_IN_STRING_CONCATENATION) | |
Quando si attiva questa opzione, il compilatore genererà un errore o un avviso ogni volta che un'espressione char [] viene utilizzata nelle concatenazioni di stringhe (ad esempio "hello" + new char[]{'w','o','r','l','d'}), | ERROR |
WARNING | |
IGNORE | |
Impostazione della modalità compatibilità di origine (COMPILER_SOURCE) | |
Specifica se il codice origine è compatibile con 1.3 o 1.4. A partire da 1.4, 'assert' è una parola chiave riservata per il supporto dell'asserzione. Quando si passa alla modalità 1.4, il livello VM di destinazione deve essere impostato su "1.4" e la modalità di compatibilità deve 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 andare oltre il livello "1.3". | VERSION_1_3 |
VERSION_1_4 | |
Numero massimo di problemi riportati per unità di compilazione (COMPILER_PB_MAX_PER_UNIT) | |
Specifica il numero massimo di problemi riportati in ciascuna unità di compilazione (se il numero massimo è zero, verranno riportati tutti i problemi). | un numero intero positivo. Il valore predefinito è 100 |
Definizione di tag di attività automatici (COMPILER_TASK_TAGS) | |
Quando il tag non è vuoto, il compilatore emette un indicatore di attività ogni volta che incontra uno dei tag corrispondenti all'interno dei commenti nel codice di origine Java. I messaggi di attività generati, che includono il tag e l'intervallo fino al separatore di riga successivo o alla fine del commento, verranno tagliati. | {<tag>[,<tag>]*}. Il valore predefinito è "" |
Definizione di priorità di attività automatiche (COMPILER_TASK_PRIORITIES) | |
Parallelamente ai tag di attività automatici, questo elenco definisce le priorità (alta, normale o bassa) degli indicatori di attività emessi dal compilatore. Se viene specificata l'impostazione predefinita, la priorità di ciascun indicatore di attività sarà "NORMAL". | {<priorità>[,<priorità>]*}. Il valore predefinito è "" |
Descrizione | Valori |
---|---|
Filtri per il controllo del processo di copia delle risorse (CORE_JAVA_BUILD_RESOURCE_COPY_FILTER) | |
Specifica i filtri che controllano il processo di copia delle risorse. (<nome> è un modello di nome file (sono consentiti solo i caratteri jolly *) o il nome di una cartella che termina con '/') | {<nome>[,<nome>]*}. Il valore predefinito è "" |
Interruzione se il percorso classi non è valido. | |
Indica al generatore di eseguire l'interruzione se il percorso classi non è valido | ABORT |
IGNORE | |
Ripulitura delle cartelle di output (CORE_JAVA_BUILD_CLEAN_OUTPUT_FOLDER) | |
Indica se JavaBuilder può eseguire o meno la ripulitura delle cartelle di output quando esegue le operazioni di generazione completa. | CLEAN |
IGNORE |
Descrizione | Valori |
---|---|
Calcolo dell'ordine di generazione del progetto (CORE_JAVA_BUILD_ORDER) | |
Indica se JavaCore deve rafforzare l'ordine di generazione del progetto in base alla catena di prerequisiti del percorso classi. Quando si richiede il calcolo, tale calcolo sostituisce l'ordine predefinito della piattaforma, in base ai riferimento del progetto). | COMPUTE |
IGNORE | |
Formato codifica di origine predefinito (CORE_ENCODING) | |
Visualizza il formato di codifica per le origini compilate. Questa impostazione è di sola lettura ed è equivalente a ResourcesPlugin.getEncoding(). | qualsiasi nome codifica supportato. Il valore predefinito corrisponde al valore predefinito della piattaforma |
Percorso classi incompleto (CORE_INCOMPLETE_CLASSPATH) | |
Indica la gravità del problema riportato quando una voce non esiste nel percorso classi, non è legittimata o non è visibile (ad esempio con un progetto di riferimento chiuso). | ERROR |
WARNING | |
Ciclo del percorso classi (CORE_CIRCULAR_CLASSPATH) | |
Indica la gravità del problema riportato quando un progetto è inserito in un ciclo. | ERROR |
WARNING | |
Abilitazione dell'utilizzo dei modelli di esclusione del percorso classi (CORE_ENABLE_CLASSPATH_EXCLUSION_PATTERNS) | |
Quando l'opzione è impostata su "disabled", nessuna voce del percorso classi di un progetto può essere associata a un modello di esclusione. | ENABLED |
DISABLED | |
Abilitazione dell'utilizzo di più percorsi di output del percorso classi (CORE_ENABLE_CLASSPATH_MULTIPLE_OUTPUT) | |
Quando l'opzione è impostata su "disabled", nessuna voce del percorso classi di un progetto può essere associata a un percorso di output specifico, impedendo così l'utilizzo di più percorsi di output. | ENABLED |
DISABLED |
Descrizione | Valori |
---|---|
Inserimento di una nuova riga prima della parentesi di apertura (FORMATTER_NEWLINE_OPENING_BRACE) | |
Con Inserisci, viene inserita una nuova riga prima di una parentesi di apertura, diversamente non viene inserita alcuna riga | INSERT |
DO_NOT_INSERT | |
Inserimento di una nuova riga all'interno di un'istruzione di controllo (FORMATTER_NEWLINE_CONTROL_BRACE) | |
Con Inserisci, viene inserita una nuova riga tra } e else, catch, finally | INSERT |
DO_NOT_INSERT | |
Eliminazione di righe vuote (FORMATTER_CLEAR_BLANK_LINES) | |
Con Elimina tutto, tutte le righe vuote vengono rimosse. Con Conserva una, una sola riga viene conservata e tutte le altre vengono rimosse. | CLEAR_ALL |
PRESERVE_ONE | |
Inserimento di una nuova riga tra Else/If (FORMATTER_NEWLINE_ELSE_IF) | |
Con Inserisci, viene inserita una riga vuota tra else e if, quando sono contigui. Quando si sceglie di non inserire una nuova riga, se possibile, else-if verranno mantenuti sulla stessa riga. | INSERT |
DO_NOT_INSERT | |
Inserimento di una nuova riga in un blocco vuoto (FORMATTER_NEWLINE_EMPTY_BLOCK) | |
Con Inserisci, viene inserita una interruzione di riga tra { e } contigui, se } non è seguito da una parola chiave. | INSERT |
DO_NOT_INSERT | |
Divisione di righe eccedenti la lunghezza prestabilita (FORMATTER_LINE_SPLIT) | |
Abilita la divisione di righe lunghe (eccedenti la lunghezza configurabile). Una lunghezza 0 disabiliterà la divisione di righe | un numero intero positivo. Il valore predefinito è 80 |
Compattazione delle assegnazioni (FORMATTER_COMPACT_ASSIGNMENT) | |
Le assegnazioni possono essere formattate asimmetricamente, ad esempio 'int x= 2;', specificando Normale, viene inserito uno spazio prima dell'operatore di assegnazione | COMPACT |
NORMAL | |
Definizione di caratteri di rientro | |
Scegliere di effettuare il rientro con caratteri di tabulazione o con spazi | TAB |
SPACE | |
Definizione della lunghezza del rientro in spazi (FORMATTER_TAB_SIZE) | |
Quando si utilizzano gli spazi, imposta il numero di spazi da utilizzare per ciascun rientro. | un numero intero positivo. Il valore predefinito è 4 |
Inserimento di spazi in espressioni cast (FORMATTER_SPACE_CASTEXPRESSION) | |
Con Inserisci, uno spazio viene aggiunto tra il tipo e l'espressione in un'espressione cast. | INSERT |
DO_NOT_INSERT |
Descrizione | Valori |
---|---|
Attiva completamento sensibile alla visibilità (CODEASSIST_VISIBILITY_CHECK) | |
Quando questa opzione è attiva, il completamento non mostra elementi non visibili (ad esempio, i metodi privati di una superclasse non sono visibili). | ENABLED |
DISABLED | |
Qualifica automatica di membri impliciti (CODEASSIST_IMPLICIT_QUALIFICATION) | |
Quando questa opzione è attiva, il completamento esegue automaticamente la qualifica su espressioni di messaggi e riferimenti di campi impliciti. | ENABLED |
DISABLED | |
Definizione di prefissi per i nomi dei campi (CODEASSIST_FIELD_PREFIXES) | |
Quando i prefissi non sono vuoti, il completamento per i nomi dei campi inizia con uno dei prefissi proposti. | {<prefix>[,<prefix>]*}. Il valore predefinito è "" |
Definizione di prefissi per i nomi dei campi statici (CODEASSIST_FIELD_PREFIXES) | |
Quando i prefissi non sono vuoti, il completamento per i nomi dei campi statici inizia con uno dei prefissi proposti. | {<prefix>[,<prefix>]*}. Il valore predefinito è "" |
Definizione di prefissi per i nomi delle variabili locali | |
Quando i prefissi non sono vuoti, il completamento per i nomi delle variabili locali inizia con uno dei prefissi proposti. | {<prefix>[,<prefix>]*}. Il valore predefinito è "" |
Definizione di prefissi per i nomi degli argomenti (CODEASSIST_ARGUMENT_PREFIXES) | |
Quando i prefissi non sono vuoti, il completamento per i nomi degli argomenti inizia con uno dei prefissi proposti. | {<prefix>[,<prefix>]*}. Il valore predefinito è "" |
Definizione di suffissi per i nomi dei campi (CODEASSIST_FIELD_SUFFIXES) | |
Quando i suffissi non sono vuoti, il completamento per i nomi dei campi termina con uno dei suffissi proposti. | {<suffix>[,<suffix>]*}. Il valore predefinito è "" |
Definizione di suffissi per i nomi dei campi statici (CODEASSIST_FIELD_SUFFIXES) | |
Quando i suffissi non sono vuoti, il completamento per i nomi dei campi statici termina con uno dei suffissi proposti. | {<suffix>[,<suffix>]*}. Il valore predefinito è "" |
Definizione di suffissi per i nomi delle variabili locali | |
Quando i suffissi non sono vuoti, il completamento per i nomi delle variabili locali termina con uno dei suffissi proposti. | {<suffix>[,<suffix>]*}. Il valore predefinito è "" |
Definizione di suffissi per i nomi degli argomenti (CODEASSIST_ARGUMENT_SUFFIXES) | |
Quando i suffissi non sono vuoti, il completamento per i nomi degli argomenti termina con uno dei suffissi proposti. | {<suffix>[,<suffix>]*}. Il valore predefinito è "" |