Blindly importing all the classes in a package clutters the class namespace and could lead to conflicts between classes in different packages with the same name. On the other hand, specifically listing the necessary classes avoids that problem and makes clear which versions were wanted.
import java.sql.*; // Noncompliant import java.util.*; // Noncompliant private Date date; // Date class exists in java.sql and java.util. Which one is this?
import java.sql.Date; import java.util.List; import java.util.ArrayList; private Date date;
Static imports are ignored by this rule. E.G.
import static java.lang.Math.*;