Since Checkstyle 5.8
Restricts using Unicode escapes (such as \u221e). It is possible to allow using escapes for non-printable, control characters. Also, this check can be configured to allow using escapes if trail comment is present. By the option it is possible to allow using escapes if literal contains only them.
name | description | type | default value | since |
---|---|---|---|---|
allowEscapesForControlCharacters | Allow use escapes for non-printable, control characters. | boolean | false |
5.8 |
allowByTailComment | Allow use escapes if trail comment is present. | boolean | false |
5.8 |
allowIfAllCharactersEscaped | Allow if all characters in literal are escaped. | boolean | false |
5.8 |
allowNonPrintableEscapes | Allow use escapes for non-printable, whitespace characters. | boolean | false |
5.8 |
To configure the check:
<module name="Checker"> <module name="TreeWalker"> <module name="AvoidEscapedUnicodeCharacters"/> </module> </module>
Examples of using Unicode:
String unitAbbrev = "μs"; // OK, perfectly clear even without a comment. String unitAbbrev = "\u03bcs";// violation, the reader has no idea what this is. return '\ufeff' + content; // OK, an example of non-printable, // control characters (byte order mark).
An example of how to configure the check to allow using escapes for non-printable, control characters:
<module name="Checker"> <module name="TreeWalker"> <module name="AvoidEscapedUnicodeCharacters"> <property name="allowEscapesForControlCharacters" value="true"/> </module> </module> </module>
Example of using escapes for non-printable, control characters:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev = "\u03bcs"; // violation, "\u03bcs" is a printable character. return '\ufeff' + content; // OK, non-printable control character.
An example of how to configure the check to allow using escapes if trail comment is present:
<module name="Checker"> <module name="TreeWalker"> <module name="AvoidEscapedUnicodeCharacters"> <property name="allowByTailComment" value="true"/> </module> </module> </module>
Example of using escapes if trail comment is present:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev = "\u03bcs"; // OK, Greek letter mu, "s" return '\ufeff' + content; // -----^--------------------- violation, comment is not used within same line.
An example of how to configure the check to allow if all characters in literal are escaped.
<module name="Checker"> <module name="TreeWalker"> <module name="AvoidEscapedUnicodeCharacters"> <property name="allowIfAllCharactersEscaped" value="true"/> </module> </module> </module>
Example of using escapes if all characters in literal are escaped:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev = "\u03bcs"; // violation, not all characters are escaped ('s'). String unitAbbrev = "\u03bc\u03bc\u03bc"; // OK String unitAbbrev = "\u03bc\u03bcs";// violation, not all characters are escaped ('s'). return '\ufeff' + content; // OK, all control characters are escaped
An example of how to configure the check to allow using escapes for non-printable whitespace characters:
<module name="Checker"> <module name="TreeWalker"> <module name="AvoidEscapedUnicodeCharacters"> <property name="allowNonPrintableEscapes" value="true"/> </module> </module> </module>
Example of using escapes for non-printable whitespace characters:
String unitAbbrev = "μs"; // OK, a normal String String unitAbbrev1 = "\u03bcs"; // violation, printable escape character. String unitAbbrev2 = "\u03bc\u03bc\u03bc"; // violation, printable escape character. String unitAbbrev3 = "\u03bc\u03bcs";// violation, printable escape character. return '\ufeff' + content; // OK, non-printable escape character.
All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.
com.puppycrawl.tools.checkstyle.checks