C'è un modo per trovare potenziali overflow numerici nel codice Java, utilizzando l'IDE Eclipse? Per esempio ...Come trovare potenziali overflow numerici nel codice Java, usando Eclipse?
long aLong = X * Y * Z;
... dove X, Y, e Z sono interi e il risultato può traboccare Integer.MAX_VALUE. (Si noti che, forse in modo anti-intuitivo, se il risultato in questo esempio supera il valore Integer.MAX_VALUE, aLong verrà assegnato il valore di overflow errato).
Ho cercato nelle impostazioni di Eclipse di Avvisi, regole PMD e regole FindBugs e non riesco a trovare alcuna impostazione per aiutare con questo. Un collega osserva che IntelliJ avvertirà di questo ... e odio dover ammettere che non posso fare lo stesso con Eclipse. ;-)
Precisazione 1: Non sto cercando qualcosa che dà 0 falsi positivi ... solo avvertimenti che "si può avere un problema di overflow qui",
Precisazione 2:. Questa è desiderato in "tempo di sviluppo" ... il che significa che, nello stesso momento in cui Eclipse sta cercando importazioni inutilizzate, PMD sta verificando le sue regole, ecc.
Quindi vuoi essere avvisato di qualsiasi operazione aritmetica? a = x + y può overflow se a, xey sono lo stesso tipo integrale – Mark
Mi piacerebbe avere anche questo controllo, ma solo per la moltiplicazione. Sto facendo la programmazione di contest e in genere i valori sono fino a 10^9, quindi l'aggiunta non è un problema, ma la moltiplicazione è e voglio essere avvertita, altrimenti dimentico il trucco 1L * x * y' ... – Betlista