Class StringLiteralsConcatenationCheck

  • All Implemented Interfaces:
    Configurable, Contextualizable

    public final class StringLiteralsConcatenationCheck
    extends AbstractCheck
    Checks for not using concatenation of string literals in any form.

    The following constructs are prohibited:

     String a = "done in " + time + " seconds";
     System.out.println("File not found: " + file);
     x += "done";

    You should avoid string concatenation at all cost. Why? There are two reasons: readability of the code and translateability. First of all it's difficult to understand how the text will look after concatenation, especially if the text is long and there are more than a few + operators. Second, you won't be able to translate your text to other languages later, if you don't have solid string literals.

    There are two alternatives to concatenation: StringBuilder and String.format(String,Object[]).