Reports interfaces that can be annotated with @FunctionalInterface (available since JDK 1.8).

Annotating an interface with @FunctionalInterface indicates that the interface is functional and no more abstract methods can be added to it.

Example:


  interface FileProcessor {
    void execute(File file);
  }

After the quick-fix is applied:


  @FunctionalInterface
  interface FileProcessor {
    void execute(File file);
  }

This inspection only reports if the language level of the project or module is 8 or higher.