Since: PMD0.5
Avoid duplicate import statements.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.imports.DuplicateImportsRule
Example(s):
import java.lang.String;
import java.lang.*;
public class Foo {}
Since: PMD0.5
Avoid importing anything from the package 'java.lang'. These classes are automatically imported (JLS 7.5.3).
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.imports.DontImportJavaLangRule
Example(s):
// this is bad
import java.lang.String;
public class Foo {}
// --- in another source code file...
// this is bad
import java.lang.*;
public class Foo {}
Since: PMD1.0
Avoid unused import statements.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.imports.UnusedImportsRule
Example(s):
// this is bad
import java.io.File;
public class Foo {}
Since: PMD1.02
No need to import a type that lives in the same package.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.imports.ImportFromSamePackageRule
Example(s):
package foo;
import foo.Buz; // no need for this
import foo.*; // or this
public class Bar{}
Since: PMD4.1
If you overuse the static import feature, it can make your program unreadable and unmaintainable, polluting its namespace with all the static members you import. Readers of your code (including you, a few months after you wrote it) will not know which class a static member comes from (Sun 1.5 Language Guide).
.[count(ImportDeclaration[@Static = 'true']) > $maximumStaticImports]
import static Lennon; import static Ringo; import static George; import static Paul; import static Yoko; // Too much !
This rule has the following properties:
| Name | Default Value | Description |
|---|---|---|
| maximumStaticImports | 4 | All static imports can be disallowed by setting this to 0 |
Since: PMD5.0
Import statements allow the use of non-fully qualified names. The use of a fully qualified name which is covered by an import statement is redundant. Consider using the non-fully qualified name.
This rule is defined by the following Java class:net.sourceforge.pmd.lang.java.rule.imports.UnnecessaryFullyQualifiedNameRule
Example(s):
import java.util.List;
public class Foo {
private java.util.List list1; // Unnecessary FQN
private List list2; // More appropriate given import of 'java.util.List'
}