유틸리티 클래스 들은 인스턴스를 생성하지 못하게 설계되어 있다. 인스턴스 생성이 의미가 없기 때문인데, 그런 클래스라고 해도 명시적으로 지정한 생성자가 없을 때는 컴파일러가 default 생성자를 만들어준다.
이 경우 클래스 사용자 입장에서는 이 생성자가 다른 것과 차이가 없으며 javadoc 프로그램으로 생성하는 api 문서에도 나타나므로 인스턴스 생성이 가능한 클래스로 오인될 수 있다.
그러므로 생성자 호출을 통한 인스턴스 생성을 방지하고 api문서에도 나타나지 않도록 할 수 있는 방법이 필요하다.

이걸 간단하게 없애주는 거싱 있다. 디폴트 생성자는 명시적으로 지정한 생성자가 전혀 없을 때만 자동으로 만들어진다. 따라서 private 생성자를 정의하면 인스턴스 생성이 불가능한 클래스를 만들 수 있다.

 public class IdiomCode {
 
  //디폴트 생성자가 자동으로 생성되는 것을 방지
  private IdiomCode(){
   throw new AssertionError();
  }
}

이렇게 처리하면 된다.
Posted by 서오석
,