블로그에 게시하는 위 글은 전체적인 내용 정리가 아닌
책을 읽으면서 새로 알게된 내용이나 제가 중요하다고 생각하는 내용을 정리한 글입니다.
기본 타입이나 배열 관련 메소드들을 모아놓을 수 있다. (ex. util class)
Collections도 이에 해당한다.
또는 final 클래스와 관련한 메소드들을 모아놓을 때 사용
그런데 이걸 인스턴스화할수도 있다.
아래 소스코드처럼 말이다.
// I think
StringUtils.isEmpty(somthing);
// Someone use
StringUtils util = new StringUtil();
util.isEmpty(somthing);
이 상황을 위해 추상클래스를 만드는 것은 옳지 않다.
하위 클래스를 만들어서 인스턴스화하면 되기 때문이다.
그렇기 때문에 인스턴스화를 막기 위해서는 private 생성자를 만들어야한다.
public class StringUtils {
private StringUtils(){
throw new AssertionError();
}
}
Collections에서는 이렇게 사용하고 있다.