자바 클래스의 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 에 추가하는 방법을 알아보았습니다.
'프로그래밍 > 자바' 카테고리의 다른 글
Oracle JDK 라이센스와 OpenJDK (2) | 2018.04.26 |
---|---|
자바 MD5, SHA-256, AES256 암호화 하기 (30) | 2018.04.25 |
Java 에서 난수(random number) 생성하기 (6) | 2018.04.20 |
자바문법 - 배열 사용하기 (0) | 2018.04.18 |
Tomcat 필터 맵핑 제외하기 - Url Rewrite Filter 이용 (2) | 2018.04.17 |