== Why is this an issue?

Unnecessary imports refer to importing types that are not used or referenced anywhere in the code.

include::../description.adoc[]

=== Exceptions

Imports for types mentioned in Javadocs are ignored.

== How to fix it

While it's not difficult to remove these unneeded lines manually, modern code editors support the removal of every unnecessary import with a single click from every file of the project.

=== Code examples

==== Noncompliant code example

[source,java,diff-id=1,diff-type=noncompliant]
----
package myapp.helpers;

import java.io.IOException;
import java.nio.file.*;
import java.nio.file.*;     // Noncompliant - package is imported twice
import java.lang.Runnable;  // Noncompliant - java.lang is imported by default

public class FileHelper {
    public static String readFirstLine(String filePath) throws IOException {
        return Files.readAllLines(Paths.get(filePath)).get(0);
    }
}
----

==== Compliant solution

[source,java,diff-id=1,diff-type=compliant]
----
package myapp.helpers;

import java.io.IOException;
import java.nio.file.*;

public class FileHelper {
    public static String readFirstLine(String filePath) throws IOException {
        return Files.readAllLines(Paths.get(filePath)).get(0);
    }
}
----

== Resources
=== Documentation

* https://docs.oracle.com/javase/tutorial/java/package/usepkgs.html[Java packages]

=== Related rules

* S1144 - Unused "private" methods should be removed
* S1481 - Unused local variables should be removed

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

* Unnecessary imports should be removed.


'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
