On Wed, 14 May 2025 19:37:57 GMT, Markus KARG <d...@openjdk.org> wrote:

>> The result should be immutable and CharSequence does not provide that. 
>> The contents should not be modifiable after the method returns.
>
> A "pure" `CharSequence` *is* immutable, as it does not have mutation methods. 
> Also, why *should* the result be immutable? If someone wants to return a 
> `StringBuilder` for example (for whatever intent), why shouldn't he allowed 
> to do that? In fact, it would be beneficial to return a `StringBuilder` in 
> some cases, as it is more efficient to modify (*iff* wanted) than a `String`. 
> It should be up to the caller and the provider of the implementation to 
> decide about immutability; this is not the API's discretion.

> Maybe a good idea at this point if @mkarg could provide an example of server 
> code benefitting from returning a CharSequence...

The most simple example is a file server. Incidential fact, just today I wrote 
a function that simply passes JSON documents received in a REST call forward to 
another server using another REST call (without parsing it). The document is 
not changed. It is *inefficient* to force it into a `String` temporarily. This 
is not untypical, such use cases exists often in server computing.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/24728#discussion_r2089622286

Reply via email to