Add getChars to CharSequence

Martin Buchholz martinrb at google.com
Tue May 21 01:07:40 UTC 2013


On Mon, May 20, 2013 at 5:30 PM, David Holmes <david.holmes at oracle.com>wrote:

> On 21/05/2013 3:55 AM, Martin Buchholz wrote:
>
>> This is __the__ fundamental question of whether to add
>> CharSequence.getChars at all.
>>
>> If none of the objects in the jdk can trust any of the others, they will
>> spend all of their time making defensive copies and unmodifiable wrappers.
>>
>
> But you are not limiting this to objects in the jdk! The CharSequence
> could come from anywhere. If the CharSequence is actually a
> String/StringBuffer/**StringBuilder then use the optimization. But
> otherwise you are just violating encapsulation.
>

David, Yes, I understand.

It's far less obviously bad than having an API that returns an internal
array.  Here there would have to be a malicious CharSequence, and the owner
of the StringB**er has to be willing to call the append method on it.

Like I said,

This is __the__ fundamental question of whether to add
CharSequence.getChars at all.

I can appreciate the argument that getChars is simply too insecure to be
found in a public interface.

But it would be sad if we couldn't enable optimizations like this.



More information about the core-libs-dev mailing list