String 리터럴이 중복 사용되어선 안됩니다.

 

중복된 String 리터럴 사용은 변경시 모든 항목을 업데이트해야 하므로, 리팩토링 과정에서 실수를 하기 쉽게 만듭니다.

반면 상수를 이용하면 여러 위치에서 참조할 수도 있고, 한 곳에서만 업데이트하면 되므로 편리합니다.

규칙을 어긴 코드

규칙이 동작하는 기본 중복 수치는 3입니다.

public void run() {
  prepare("action1");                              // 규칙을 어긴 코드 - "action1" 이 3번 중복되어 사용되었습니다
  execute("action1");
  release("action1");
}

@SuppressWarning("all")                            // 규칙을 준수한 해결책 - 어노테이션에서는 이 규칙이 적용되지 않습니다
private void method1() { /* ... */ }
@SuppressWarning("all")
private void method2() { /* ... */ }

public String method3(String a) {
  System.out.println("'" + a + "'");               // 규칙을 준수한 해결책 - 리터럴 "'" 은 5글자 이하라서 예외처리 됩니다
  return "";                                       // 규칙을 준수한 해결책 - 리터럴 "" 은 5글자 이하라서 예외처리 됩니다
}

규칙을 준수한 해결책

private static final String ACTION_1 = "action1";  // 규칙을 준수한 해결책

public void run() {
  prepare(ACTION_1);                               // 규칙을 준수한 해결책
  execute(ACTION_1);
  release(ACTION_1);
}

예외

거짓 양성 반응을 피하기 위해, 길이가 5글자 보다 작은 경우에는 규칙이 동작하지 않습니다.


If you like SONARKUBE, don’t forget to give me a star. :star2:

원문으로 바로가기

Star This Project