본문 바로가기
Java·Servlet·JSP

[JAVA] static import문

by Leica 2020. 1. 29.
반응형

static import문은 JDK1.5부터 추가된 기능이다.

 

import문을 사용하면 클래스의 패키지명을 생략할 수 있는 것과 같이 static import문을 사용하면 static멤버를 호출할 때 클래스명을 생략할 수 있다. 코드가 간결해지고 특정 클래스의 static 멤버를 자주 사용할 때 편리하지만 남용하면 독이 될 수 있기 때문에 주의해야 한다.

 

import static java.lang.Integer.*;	// Integer 클래스의 모든 static 멤버
import static java.lang.Math.random;	// Math.random()만 import. 괄호는 붙이지 않는다.
import static java.lang.System.out;	// 이렇게 하면 System.out을 out만으로 참조 가능

위와 같이 static import문을 선언하면

 

// static import문 선언 전
System.out.println(Math.random());

// static import문 선언 후
out.println(random());

위 코드를 아래 코드와 같이 간략히 할 수 있다.

 

마치 현재 클래스의 멤버인것 처럼 사용할 수 있기 때문에 편리하지만 그 만큼 혼동을 주기 쉽다. 적절한 사용처 중의 하나는 Stream 객체에 collect() 연산을 사용할 때 Collectors 클래스의 static 메소드를 간결하게 호출하기 위해 static import문을 사용하는 것이다. (Stream은 JDK1.8부터 추가되었다.)

collect()는 수집 방법을 구현한 Collector 객체를 매개변수로 하는데 Collectors 클래스에는 기본적인 static 메소드를 갖고있기 때문에 직접 구현하지 않고도 다양한 종류의 컬렉터를 사용할 수 있다. 이 때 사용할 Collectors의 멤버를 static import문으로 선언해두면 더욱 간편하게 사용할 수 있는 것이다.

반응형

댓글