Import Statement Rules
이 룰셋은 클래스를 임포트 하는 룰을 포함한다.
DuplicateImports
중복된 import는 피해야 한다.
//java.lang.String은 java.lang.* 패키지 import에 포함되어 있으므로, //중복된 import이다. import java.lang.String; import java.lang.*; public class Foo {}
DontImportJavaLang
java.lang 페키지 내의 어떠한 것도 import 하는 것은 피해야한다. 해당 클래스들은 자동으로 import된다.
// 기본적으로 String은 import되어 있으므로 import를 다시 할 필요 없다. import java.lang.String; public class Foo {} // 기본적으로 java.lang 하위 모든 클래스들은 이미 import되어 있으므로 // import를 다시 할 필요 없다. import java.lang.*; public class Foo {}
UnusedImports
사용되지 않은 클래스 import들은 삭제하자.
// 아래의 File은 사용되지 않았으므로, 삭제하자. import java.io.File; public class Foo {}
ImportFromSamePackage
같은 패키지 내의 클래스들은 import 할 필요가 없다.
package foo; import foo.Buz; //같은 foo 패키지 안의 클래스라서 import 불필요 import foo.*; // 위와 같은 이유로 불필요! public class Bar{}
TooManyStaticImports
정적인 import는 한편 편해보이는 기능일 수 있지만, 너무 많은 static import는 프로그램의 가독성을 떨어트리고, 유지보수에 어려움을 만들며, 네임스페이스(name space)를 오염시킬 수 있다. 이런 코드를 읽는 프로그래머들(몇 달 후에 이 코드를 접하는 작성자 포함하여) 어떤 클래스가 static import 인지 아닌지 알 수 없다. (JDK 1.5 이상에서만 static import가 가능하다.)
import static Lennon; import static Ringo; import static George; import static Paul; import static Yoko; //너무 많이 사용했다.
해당 URL: http://pmd.sourceforge.net/pmd-4.2.6/rules/imports.html