Import Statement Rules

These rules deal with different problems that can occur with a class' import statements.

DuplicateImports

Avoid duplicate import statements.

This rule is defined by the following Java class: net.sourceforge.pmd.rules.imports.DuplicateImportsRule

Here's an example of code that would trigger this rule:

			

import java.lang.String;
import java.lang.*;
public class Foo {}

    
		

DontImportJavaLang

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.rules.imports.DontImportJavaLang

Here's an example of code that would trigger this rule:

			

// this is bad
import java.lang.String;
public class Foo {}

// --- in another source code file...

// this is bad
import java.lang.*;

public class Foo {}

    
		

UnusedImports

Avoid unused import statements.

This rule is defined by the following Java class: net.sourceforge.pmd.rules.imports.UnusedImportsRule

Here's an example of code that would trigger this rule:

			

// this is bad
import java.io.File;
public class Foo {}

    
		

ImportFromSamePackage

No need to import a type that lives in the same package.

This rule is defined by the following Java class: net.sourceforge.pmd.rules.imports.ImportFromSamePackageRule

Here's an example of code that would trigger this rule:

			
 
 package foo;
 import foo.Buz; // no need for this
 import foo.*; // or this
 public class Bar{}