This rule raises an issue when a private nested class is never used.

Why is this an issue?

private classes that are never used are dead code: unnecessary, inoperative code that should be removed. Cleaning out dead code decreases the size of the maintained codebase, making it easier to understand the program and preventing bugs from being introduced.

Code examples

Noncompliant code example

public class TopLevel
{
  private class Nested {...} // Noncompliant: Nested is never used
}

Compliant solution

public class TopLevel
{
  void doSomething() {
    Nested a = new Nested();
    ...
  }
  private class Nested {...}
}