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?

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top