2016-02-17 35 views
7

I netbeans spesso suggeriscono che "capovolgo gli operandi dell'operatore binario" quando eseguo calcoli matematici. Ad esempio, nella seguente riga di codice:Perché Netbeans suggerisce I "Operatori flip degli operatori binari" nel mio codice Java

change = 100 - price; 

    quarters = change/25; 
    dimes = change % 25/10; 
    nickels = change % 25 % 10/5; 
    pennies = change % 25 % 10 % 5; 

Netbeans rende il suggerimento per ogni simbolo matematico (così lo fa per tre volte nella linea 'penny'

io non sono sicuro di aver capito. perché sta facendo il suggerimento: se dovessi capovolgere gli operandi mentre eseguivo la divisione, otterrei un risultato diverso (se "capovolgi" significa ciò che penso che faccia, che è cambiare l'ordine dei due valori) .Perché suggerisce questo ?

+0

Sei sicuro che è attivo quella linea? Puoi mostrarti? s alcune linee su/giù da quella linea specifica? – Idos

+0

Sì, sono abbastanza sicuro che sia su quella linea. Il suggerimento appare solo quando clicco direttamente su un operatore matematico. –

+0

No, nessuna modifica all'ordine degli operandi se si fa clic sul simbolo dell'operatore. Li cambierà se clicco sull'avviso e seleziono 'flip operandi'. –

risposta

0

Il tuo pensiero che questa è una funzionalità di Netbeans per capovolgere rapidamente gli operandi è corretta. Questo è uno dei pochi "suggerimenti" ioni/azioni "disponibile in Java Hint (http://wiki.netbeans.org/Java_Hints), a differenza dei più numerosi" suggerimenti/ispezioni ".

In Netbeans 8.2 Ho verificato che quando si preme Alt + Invio nella riga dei pennini nel proprio frammento, c'è un'opzione di menu per "Capovolgi gli operandi di '%' (potrebbe alterare la semantica)". In realtà, può far apparire più opzioni di menu perché ci sono più operatori binari.Se si sceglie di capovolgere gli operandi, il suggerimento rimarrà e sarà possibile capovolgerli di nuovo, ripetutamente, con lo stesso mezzo.

Apparentemente Netbeans è abbastanza intelligente da perlomeno sappiate che il capovolgimento degli operandi per questo tipo di operatore potrebbe cambiare la semantica (anche se non menziona il comportamento). '==' non porta questo avviso