Why is this an issue?

Empty statements represented by a semicolon ; are statements that do not perform any operation. They are often the result of a typo or a misunderstanding of the language syntax. It is a good practice to remove empty statements since they don’t add value and lead to confusion and errors.

Code examples

Noncompliant code example

void doSomething() {
  ; // Noncompliant - was used as a kind of TODO marker
}

void doSomethingElse() {
  System.out.println("Hello, world!");; // Noncompliant - double ;
  // ...
}

Compliant solution

void doSomething() {}

void doSomethingElse() {
  System.out.println("Hello, world!");
  // ...
  for (int i = 0; i < 3; i++) ; // Compliant if unique statement of a loop
  // ...
}

Resources

Documentation