new StringBuilder(char)

Jeremy Manson jeremymanson at google.com
Sat Aug 16 05:38:42 UTC 2014


No love from core-libs-dev?  It's backwards-incompatible, but in a way that
would unbreak existing broken code.  Might be a worthwhile cleanup.

Jeremy


On Fri, Aug 8, 2014 at 1:53 PM, Eddie Aftandilian <eaftan at google.com> wrote:

> Hi all,
>
> We recently realized that calling new StringBuilder(char) does not do what
> you would think it does.  Since there is no char constructor defined, the
> char is widened to an int and the StringBuffer is presized to the
> character's encoded value.  Thus code like this prints an empty string
> rather than the expected "a":
> System.out.println(new StringBuilder('a'));
>
> Would it be possible to add a char constructor to StringBuilder to prevent
> this problem? I understand this would change the behavior of any code that
> is currently doing this, but it's hard to imagine anyone doing this
> intentionally.  Of the ~20 instances we found in Google's codebase, all
> were bugs.  What is your policy on making changes like this where (a) it
> will cause a change in behavior, but (b) the currently behavior is clearly
> wrong?
>
> If you're willing to take the change, I'd be happy to send a patch.
>
> Thanks,
> Eddie
>



More information about the core-libs-dev mailing list