Come faccio a sopprimere Eclipse 3.5 di avvertimenti di codice morto
-
23-08-2019 - |
Domanda
Io uso una per il rilevamento di indirizzi di posta elettronica che utilizza booleani finali statici per configurare l'abbinamento comportamento. Da quando ho aggiornato a Eclipse 3.5 ricevo avvertimenti circa codice morto, in quanto Eclipse si accorge che un ramo in questo non può essere raggiunto:
private static final boolean ALLOW_DOMAIN_LITERALS = false;
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;
Stranamente è felice di questo:
private static final String domain;
static {
if(ALLOW_DOMAIN_LITERALS) {
domain = rfc2822Domain;
} else {
domain= rfc1035DomainName;
}
}
in quanto sembra di riconoscere il modello comune if(DEBUG)
, ma l'operatore ternario non sembra contare.
Dal momento che preferisco non fork di classe troppo solo per mantenere Eclipse felice, preferisco mettere un @SuppressWarnings
in alto invece di cambiare il codice. Purtroppo non riesco a trovare una corrispondenza uno a parte il "all"
forza bruta. C'è un valore solo per il rilevamento di codice morto?
Soluzione
Aggiorna : dal commento di Adam:
In Eclipse 3.6 e versioni più recenti Eclipse @SuppressWarnings("unused")
possono ora essere utilizzati per sopprimere avvertimenti 'codice morto'. Vedi la risposta di Christopher della .
Si veda anche Eclipse 4.4 (Luna) aiutare per @SuppressWarnings.
risposta originale:
Tutti i valori SuppressWarnings Eclipse 3.5 "sa" sono elencati in questa pagina . Sembra che non v'è alcun valore per la soppressione solo il nuovo rilevamento dead-code. Ma è possibile utilizzare la @SuppressWarnings("all")
poco prima della dichiarazione domain
quindi sarà eliminare gli avvisi solo per quella linea non per tutta la classe:
private static final boolean ALLOW_DOMAIN_LITERALS = false;
@SuppressWarnings("all")
private static final String domain = ALLOW_DOMAIN_LITERALS ? rfc2822Domain : rfc1035DomainName;
A causa di controllo codice morto è uno nuovo si può anche suggerire un enchancement nel href="https://bugs.eclipse.org/bugs/" rel="nofollow noreferrer"> Eclipse database di bug per supportare l'operazione ternario pure.
Altri suggerimenti
Seleziona Ignore
in Windows -> Preferences > Java > Compiler > Errors/Warnings
nella sezione Potential programming problems
È possibile disattivare gli avvisi del 'codice morti' utilizzando
@SuppressWarnings( "unused" )
Vedere la documentazione di Eclipse per ulteriori informazioni:
"non utilizzati" per eliminare gli avvisi relativi al codice non utilizzato e il codice morti
Un saluto
Christopher