String literals should not be duplicated


String literals should not be duplicated
 
Code smell
 
Critical
java:S1192
 
Duplicated string literals make the process of refactoring error-prone, since you must be sure to update all occurrences.
On the other hand, constants can be referenced from many places, but only need to be updated in a single place.
Noncompliant Code Example
With the default threshold of 3:
  public void run() {    prepare("action1"); // Noncompliant - "action1" is duplicated 3 times    execute("action1");    release("action1");  }    @SuppressWarning("all") // Compliant - annotations are excluded  private void method1() { /* ... */ }  @SuppressWarning("all")  private void method2() { /* ... */ }    public String method3(String a) {    System.out.println("'" + a + "'"); // Compliant - literal "'" has less than 5 characters and is excluded    return ""; // Compliant - literal "" has less than 5 characters and is excluded  }  
Compliant Solution
  private static final String ACTION_1 = "action1"; // Compliant    public void run() {    prepare(ACTION_1); // Compliant    execute(ACTION_1);    release(ACTION_1);  }  
Exceptions
To prevent generating some false-positives, literals having less than 5 characters are excluded.
Parameters
Following parameter values can be set in Rule Settings. In connected mode, server side configuration overrides local settings.
threshold  
Number of times a literal must be duplicated to trigger an issue
Current value: 3
Default value: 3

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM