On Sat, 5 Apr 2025 17:36:29 GMT, Markus KARG <d...@openjdk.org> wrote:
> This Pull Requests proposes an implementation for > [JDK-8353795](https://bugs.openjdk.org/browse/JDK-8353795): Adding the new > method `public static Writer Writer.of(StringBuilder)`, providing a > non-synchronized Writer implementation optimized for writing into > `StringBuilder`. > > A basic test is provided to proof that the new `Writer` behaves as expected. > For comparison, the same test is also run against `StringWriter`. Continuing from thread "[Request for Enhancement: java.io.Writer.of(Appendable) as an efficient alternative to java.io.StringWriter](https://mail.openjdk.org/pipermail/core-libs-dev/2025-March/141539.html)": @liach wrote: >...we can probably start drafting the API documentation of this new API >`Writer.of(StringBuilder)`: >```java >@return a character stream that redirects to a specified StringBuilder} ><p> >The {@code write} and {@code append} invocations are redirected to the {@code >append} methods with the same parameter t>ypes on the specified StringBuilder, >except {@code write(int)}, which delegates to {@code append(char)}. The {@code >flush} and >{@code close} invocations have no effect. >``` >I propose to specify this explicitly as a delegation proxy; we can infer the >lack of thread safety from `StringBuilder`. (If we want, we can add an API >note asking to use `StringWriter` if thread safety is needed). Also, we don't >specify the `toString` behavior on the returned Writer (unlike for >`StringWriter`); I think users should just use the `toString` on the >`StringBuilder`. Actually I do not see the benefit of documenting which method redirects to what other method or class, but I see that it binds us in future to today's decisions. Also I do not see what benefit notes about `StringWriter` and `toString` would be good for, as leaving it open provides most future flexibility to change eventually (just as we leave open `hashCode` and `equals`). Having said that, instead I started the PR with a typical JavaDoc as it looks like what we did in `Reader.of()` recently. WDYT? ------------- PR Comment: https://git.openjdk.org/jdk/pull/24469#issuecomment-2781332523