Back to Intellij Community

AnonymousHasLambdaAlternative

java/java-impl/resources/inspectionDescriptions/AnonymousHasLambdaAlternative.html

2025.3-rc-2689 B
Original Source

Reports anonymous classes which could be transformed to a constructor or a factory method call with a lambda expression argument.

The following classes are reported by this inspection:

  • Anonymous classes extending ThreadLocal which have an initialValue() method (can be replaced with ThreadLocal.withInitial)
  • Anonymous classes extending Thread which have a run() method (can be replaced with new Thread(Runnable)

Example:

new Thread() {
    @Override
    public void run() {
      System.out.println("Hello from thread!");
    }
  }.start();

After the quick-fix is applied:

new Thread(() -> {
    System.out.println("Hello from thread!");
  }).start();