더북(TheBook)

08
인터페이스의 정적 메서드

자바 8부터는 인터페이스에 정적 메서드를 추가할 수 있다. 인터페이스의 정적 메서드를 금지해야 하는 기술적인 이유는 없었다. 단지 추상 명세라는 인터페이스의 정신에 어긋나는 것으로 보였을 뿐이다.

지금까지는 일반적으로 인터페이스와 동반하는 클래스들에 정적 메서드를 두었다. 자바 표준 라이브러리에서 Collection/Collections 또는 Path/Paths같은 인터페이스와 유틸리티 클래스 쌍을 찾아볼 수 있다.

Paths 클래스를 살펴보자. 이 클래스는 몇 가지 팩토리 메서드factory method만 포함하고 있다. Paths.get("jdk1.8.0", "jre", "bin")처럼 일련의 문자열로부터 경로(Path)를 만들 수 있다. 자바 8에서는 Path 인터페이스에 이 메서드를 추가할 수도 있었다.


public interface Path {

public static Path get(String first, String... more) {

return FileSystems.getDefault().getPath(first, more);

}

...

}


 

이렇게 하면 Paths 클래스가 더는 필요 없다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.