Numeric issues
- 'char' expression used in arithmetic context
Reports expressions of the char type used in addition or subtraction expressions.
- 'equals()' called on 'BigDecimal'
Reports equals() calls that compare two java.math.BigDecimal numbers.
- 'long' literal ending with 'l' instead of 'L'
Reports long literals ending with lowercase 'l'.
- Call to 'BigDecimal' method without a rounding mode argument
Reports calls to divide() or setScale() without a rounding mode argument.
- Comparison of 'short' and 'char' values
Reports equality comparisons between short and char values.
- Comparison to 'Double.NaN' or 'Float.NaN'
Reports any comparisons to Double.NaN or Float.NaN.
- Confusing floating-point literal
Reports any floating point numbers that don't have a decimal point, numbers before the decimal point, or numbers after the decimal point.
- Constant call to 'Math'
Reports calls to java.lang.Math or java.lang.StrictMath methods that can be replaced with simple compile-time constants.
- Division by zero
Reports division by zero or remainder by zero.
- Floating-point equality comparison
Reports floating-point values that are being compared using the == or != operator.
- Implicit numeric conversion
Reports implicit conversion between numeric types.
- Integer division in floating-point context
Reports integer divisions where the result is used as a floating-point number.
- Negative int hexadecimal constant in long context
Reports negative int hexadecimal constants in long context.
- Non-reproducible call to 'Math'
Reports calls to java.lang.Math methods, which results are not guaranteed to be reproduced precisely.
- Number constructor call with primitive argument
Reports instantiations of new Long, Integer, Short, or Byte objects that have a primitive long, integer, short, or byte argument.
- Numeric overflow
Reports expressions that overflow during computation.
- Octal and decimal integers in same array
Reports mixed octal and decimal integer literals in a single array initializer.
- Octal integer
Reports octal integer literals.
- Overly complex arithmetic expression
Reports arithmetic expressions with the excessive number of terms.
- Pointless arithmetic expression
Reports pointless arithmetic expressions.
- Possibly lossy implicit cast in compound assignment
Reports compound assignments if the type of the right-hand operand is not assignment compatible with the type of the variable.
- Suspicious oddness check
Reports odd-even checks of the following form: x % 2 == 1.
- Suspicious underscore in number literal
Reports decimal number literals that use the underscore numeric separator with groups where the number of digits is not three.
- Unary plus
Reports usages of the + unary operator.
- Underscores in numeric literal
Reports numeric literals with underscores and suggests removing them with a quick-fix.
- Unnecessary unary minus
Reports unnecessary unary minuses.
- Unpredictable 'BigDecimal' constructor call
Reports calls to BigDecimal constructors that accept a double value.
- Unreadable numeric literal
Reports long numeric literals without underscores and suggests adding them.
- Cast
Sub-group of 5 inspections that provide checks for Cast