static
멤버의 집합인 유틸리티 클래스들은 인스턴스화 될 일이 없습니다.
혹시라도 추상 유틸리티 클래스일지라도, 생성자가 public 이어야할 이유가 없습니다.
자바는 기본적으로 생성자가 하나라도 정의된 게 없을 경우, 암묵적인 public 기본 새성자를 생성합니다. 따라서 private 생성자를 선언할 필요가 있습니다.
규칙을 어긴 코드
class StringUtils { // 규칙을 어긴 코드
public static String concatenate(String s1, String s2) {
return s1 + s2;
}
}
규칙을 준수한 해결책
코드가 1줄인 if 체인의 블록은 무시됩니다. 또한 마찬가지의 이유로 1줄의 코드를 갖는 switch block
도 예외로 간주됩니다.
class StringUtils { // 규칙을 준수한 해결책
private StringUtils() {
throw new IllegalStateException("Utility class");
}
public static String concatenate(String s1, String s2) {
return s1 + s2;
}
}
예외
클래스에 public static void main(String[] args)
메소드가 포함된 경우, 단순 유틸리티 클래스로 여기지 않습니다. 따라서 이 규칙은 동작하지 않습니다.
If you like SONARKUBE, don’t forget to give me a star.