책/이펙티브 자바 3e

item4) 인스턴스화를 막으려거든 private 생성자를 사용하라

jhg0406 2022. 2. 24. 00:04

정적 메서드와 정적 필드만을 담은 클래스를 만들고 싶을 때가 있음

이럴땐 private 생성자를 추가하면 클래스의 인스턴스화를 막을 수 있음

 

//기본 생성자가 만들어지는 것을 막음(인스턴스화 방지용)
private CLASS_NAME() {
	throw new AssertionError();
}

혹시 클래스 내부에서 생성자가 호출 될 수 있으니 Assertion Error를 던지는 것도 좋은 방법

생성자가 존재하는데 호출할 순 없는것이 직관적이지 않으니 주석을 다는게 좋음