본문 바로가기

PMD

[한글화 시리즈-10] Import Statement Rules

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