RFR: 8358533: Improve performance of java.io.Reader.readAllLines [v4]

Roger Riggs rriggs at openjdk.org
Wed Jun 25 20:40:30 UTC 2025


On Wed, 25 Jun 2025 19:57:56 GMT, Xueming Shen <sherman at openjdk.org> wrote:

>> Fixed in [d5abfa4](https://github.com/openjdk/jdk/pull/25863/commits/d5abfa450cb3fcd604560833038735e41952bce9
>> ).
>
> My apologies if this is a naive question :-) I'm sure this was discussed when the method was added, so this is just for my own education.
> 
> What's the benefit of explicitly specifying that the returned list is unmodifiable here? For example, Files.readAllLines() says that whether the list is modifiable is implementation-dependent and not specified.
> 
> In this case, it seems the returned list is a final result — a snapshot — and there's no real harm (to the reader) even if the caller modifies it. So is marking it unmodifiable more of a design philosophy? Or do we have data (or experience) suggesting that most usage scenarios prefer an unmodifiable collection?

A design philosophy, generally toward immutability to make data structures more predictable and safer from action at a distance complications.
It avoids ambiguity that some using the API might assume or depend on if not specified.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25863#discussion_r2167586376


More information about the core-libs-dev mailing list