StringBuilder and StringBuffer should not be instantiated with a character

  • squid : S1317

Instantiating a StringBuilder or a StringBuffer with a character is misleading because most Java developers would expect the character to be the initial value of the StringBuffer.

What actually happens is that the int representation of the character is used to determine the initial size of the StringBuffer.

Noncompliant Code Example

StringBuffer foo = new StringBuffer('x');   //equivalent to StringBuffer foo = new StringBuffer(120);

Compliant Solution

StringBuffer foo = new StringBuffer("x");
Close