Prefer using java.time-based APIs when available. Note that this checker does not and cannot guarantee that the overloads have equivalent semantics, but that is generally the case with overloaded methods.

Has Fix?

Alternate names: PreferDurationOverload

The problem

APIs that accept a java.time.Duration or java.time.Instant should be preferred, when available.

JodaTime is now considered a legacy library for Java 8+ users.

Representing date/time concepts as numeric primitives is strongly discouraged (e.g., long timeout).

APIs that require a long, TimeUnit pair suffer from a number of problems

  1. they may require plumbing 2 parameters through various layers of your application

  2. overflows are possible when doing duration math

  3. they lack semantic meaning (when viewed separately)

  4. decomposing a duration into a long, TimeUnit is dangerous because of unit mismatch and/or excessive truncation.


Suppress false positives by adding the suppression annotation @SuppressWarnings("PreferJavaTimeOverload") to the enclosing element.