Czy istnieje sposób na znalezienie potencjalnych przekroczeń liczbowych w kodzie Java, korzystając z IDE Eclipse? Na przykład ...Jak znaleźć potencjalne przepełnienie liczbowe w kodzie Java, używając Eclipse?
long aLong = X * Y * Z;
..., gdzie X, Y i Z są typu int i wynik może przelewać Integer.MAX_VALUE. (Zauważ, że być może sprzecznym z intuicją, jeśli wynik w tym przykładzie przekroczy wartość Integer.MAX_VALUE, aLong zostanie przypisana błędna przepełniona wartość).
Sprawdziłem ustawienia ostrzeżenia Eclipse, zasady PMD i reguły FindBugs i nie mogę znaleźć żadnego ustawienia, które by im pomogło. Współpracownik zauważa, że IntelliJ ostrzega o tym ... i nie chciałbym przyznać, że nie mogę zrobić tego samego z Eclipse. ;-)
Wyjaśnienie 1: Nie szukam czegoś, co daje 0 fałszywych alarmów ... tylko ostrzeżenia, że „mogą mieć problem przepełnienia tutaj”
Wyjaśnienie 2:. To jest pożądane w "czasie rozwoju" ... co oznacza, że na tym samym etapie, w którym Eclipse szuka niewykorzystanego importu, PMD sprawdza jego zasady, itp.
Więc chcesz być ostrzeżony przed operacją arytmetyczną? a = x + y może przepełnić się, jeśli a, x i y są tymi samymi integralnymi typami: – Mark
Chciałbym mieć również taki sprawdzian, ale tylko dla mnożenia. Robię programowanie konkursowe i zazwyczaj wartości są do 10^9, więc dodawanie nie jest problemem, ale mnożenie jest i chcę być ostrzeżony, w przeciwnym razie zapomnę podstęp "1L * x * y" ... – Betlista