중복된 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.