[Java] Static Import 그리고 이클립스(Eclipse)에서 약간 편히 사용하기
Java 2013. 11. 14. 11:35 |Java 5.0에서 추가된 static import 기능이 있다. static 메소드나 static 변수를 접근하기 위해 해당 클래스의 이름과 함께 써 주어야 한다. 하지만 유틸리티성 메소드나 상수의 경우 일일이 클래스 이름을 써주기 귀찮은 경우가 있는데 이 경우 static import를 사용하면 클래스 이름 없이 static 메소드나 static 변수 이름만으로 사용할 수 있다.
좀 찾아보니 가장 만만한 예제는 java.lang.Math인가보다. @ㅅ@ static 메소드나 변수가 많아서 그런가.. 그래서 나는 java.util.Calendar를 사용하기로 했다. -ㅅ- 왜냐?? 똑같은건 재미 없잖아~ ㅋㅋ 사실 Calendar를 쓰면서 Calendar.YEAR, Calendar.MONTH, Calendar.DATE 같이 Calendar 클래스명을 계속 쓰는게 귀찮았다 -ㅅ-;;;
import java.util.Calendar;
public class StaticImportTest
{
public static void main(String [] args)
{
Calendar cal = getInstance();
System.out.println(cal.get(DATE) + "/" + (cal.get(MONTH) + 1) + "/" + cal.get(YEAR));
}
}
static import를 사용하지 않으면 아래와 같이 써야 한다.
public class StaticImportTest
{
public static void main(String [] args)
{
Calendar cal = getInstance();
System.out.println(cal.get(Calendar.DATE) + "/" + (cal.get(Calendar.MONTH) + 1) + "/" + cal.get(Calendar.YEAR));
}
}
이클립스(Eclipse)와 같은 툴과 함께 static import를 사용하면 조금 불편할 때가 있다. 이클립스에는 import 문을 자동으로 구성해주는 "Organize Imports"라는 이름의 기능이 있다. (이클립스 메뉴의 Source -> Organize Imports를 클릭하거나 Ctrl + Shift + O를 누르면 된다.)
그러면 바로 위와 같은 import문이 현재 클래스(맨 위의 예제 클래스)에서 사용한 것들만 import하도록 아래처럼 변경되어 버린다.
import static java.util.Calendar.MONTH;
import static java.util.Calendar.YEAR;
import static java.util.Calendar.getInstance;
이렇게 되면 더 이상 Calendar 클래스 내의 static 메소드나 변수를 "Content Assist(자동 완성)"을 통해서 사용할 수 없게 된다. 만일, 요일을 출력하는 부분을 추가하기 위해 Calendar.DAY_OF_WEEK를 사용하려면 손수 import문을 추가해 주어야 하는 불편함이 생긴다. TㅅT
자.. 오뜨케 하믄 "Organize Imports" 이후에도 편하게 static import를 할 수 있을까?? 기선님의 포스트에서 간단한 해결 방법을 찾았다. 이클립스의 설정 중에 "Organize Imports" 설정이 있다. 이클립스의 설정창(Window -> Preferences)에서 Java -> Code Style -> Organize Imports -> Number of static imports needed for.*의 숫자를 99(기본값)를 1로 줄여주면 된다고 한다. 그럼 줄여보자~~ 그러면 단 1줄이라도 static import를 사용하면 ".*"로 import된다.
참.. 설정하는 그 숫자들의 의미는.. 그 숫자 이상의 동일한 패키지나 클래스의 import문이 있을 경우 ".*"로 대체해 버린다는 뜻이다. 그러니 숫자를 1로 줄이면, 1번 이상 import문이 나오면 ".*"로 바꿔준다. 만일, 3으로 바꾸면 3번 이상 출현하면 대체~
+ 이클립스는 이런 세세한 설정을 할 수 있는게 은근히 마음에 든다. 내 코드 스타일과 다른 사람이 작성한 코드를 간단하게 Ctrl + Shift + F 눌러서 내가 원하는 코드 스타일로 변경될 때의 그 쾌감이란 -ㅅ-;; 개발자는 각자 개성이 워낙 독특해서 이런데 민감하기도 해요. ㅋㅋ Ctrl + Shift + O는 Formatter(설정창의 Java -> Code Style -> Formatter)를 원하는 형태로 설정해 놓은 뒤에 사용하여야 함. formatter 설정을 xml 형태로 export/import할 수 있어 이클립스 버전이 바뀌거나 하면 다른 곳으로 옮기기 편하다