본문 바로가기
프로그래밍/자바

자바(Java) - static import 사용하기

by pentode 2018. 4. 23.

자바 클래스의 static 메소드는 클래스에 대한 인스턴스의 생성없이 메소드를 사용할 수 있습니다. 예로 절대값을 구하는 java.lang.Math 클래스의 abs() 메소드는 다음과 같이 클래스명.메소드로 바로 사용합니다.


int i = Math.abs(-3);


JDK 1.5부터는 이러한 정적(static) 메소드를 더욱 쉽게 사용하기 위해서 static import 를 지원합니다.


import static java.lang.Math.abs;


int i = abs(-3);


정적 메소드를 import static 을 사용해서 import 한후에 클래스명 없이 abs(); 처럼 바로 사용할 수 있습니다. 주의해야 할 것은 같은 클래스 내에 동일한 이름의 메소드가 있으면 클래스 자신의 메소드가 우선합니다.


클래스내의 모든 정적 메소드를 import 하려면 다음과 같이 사용할 수 있습니다.


import static java.lang.Math.*;


하지만 일반적으로 import 에 * 를 사용하는 것은 권장 되지 않습니다.


정적 메소드외에 정적 멤버 변수도 static import 의 대상이 됩니다.


import static java.lang.Math.PI;


System.out.println(PI);


이클립스에서 Ctrl + Space 를 누르면 Code Assist가 동작하여 처음 몇자만 입력하면 필요한 클래스의 import 나 사용 가능한 메소드를 추천 또는 자동완성을 해 줍니다. 하지만 static import 는 기본적으로 자동으로 인식하지 못합니다.


이클립스에서 static 멤버에 대한 Code Assist 를 지원하기 위해서는 사용할 클래스를 Favorites 에 등록하여 사용할 수 있습니다.


- Window -> Preferences > Java/Editor/Content Assist/Favorites에서 New Type 으로 클래스를 등록합니다.

- 여기서는 java.lang.Math 클래스를 등록해 봅니다. java.lang.Math 를 입력하면 java.lang.Math.* 로 표시되어 집니다.



- abs 를 입력하고 Ctrl + Space 키를 누르면 java.lang.Math 클래스의 abs 를 제안해 줍니다.



- 제안된  java.lang.Math의 abs를 선택하면 import static java.lang.Math.abs; 가 자동으로 포함되어 집니다.




Java의 정적 메소드를 간단히 사용할 수 있는 static import 에 대해서 알아보았고, 이클립스(eclipse)에서 Code  Assist 에서 static import 가 되도록 클래스를 Favorites 에 추가하는 방법을 알아보았습니다.



반응형