정적 메서드는 인스턴스 없이 액세스할 수 있습니다. 따라서 정적 메서드만 있는 클래스를 인스턴스화할 이유가 없습니다.
규칙을 어긴 코드
public class TextUtils {
public static String stripHtml(String source) {
return source.replaceAll("<[^>]+>", "");
}
}
public class TextManipulator {
// ...
public void cleanText(String source) {
TextUtils textUtils = new TextUtils(); // 규칙을 어긴 코드
String stripped = textUtils.stripHtml(source);
//...
}
}
규칙을 준수한 해결책
public class TextUtils {
public static String stripHtml(String source) {
return source.replaceAll("<[^>]+>", "");
}
}
public class TextManipulator {
// ...
public void cleanText(String source) {
String stripped = TextUtils.stripHtml(source);
//...
}
}
같이보면 좋은 자료
- rule:java:S1118 - 유틸리티 클래스들은 public 생성자를 갖고 있어선 안됩니다.
If you like SONARKUBE, don’t forget to give me a star.