Task for an aspiring JDK contributor

Daniel Fuchs daniel.fuchs at oracle.com
Fri Nov 18 16:51:09 UTC 2022

Hi Andreas,

First of all, congratulations for seeking advice before working on
a PR. This is exactly how first contributions should start. Thank
you for that!

Given the area in which you intended to work however, `core-libs-dev`
might have been a better list than `discuss` to start from.

With regard to the meat of the issue however, and as noted by Ethan,
Arrays.asList() behaves as intended, and changing that would be a
major incompatible change, as many users of the API expect the list
returned by Arrays.asList to be immutable (and depend on it).
It is not possible nor desirable to change that.

As for your observation, I believe that:

   `new ArrayList<>(Arrays.asList(array))`

will get you what you want.

best regards,

-- daniel

On 18/11/2022 16:29, Andreas Røsdal wrote:
> Yes, the exception comes when adding objects to the returned list. So I 
> would like a convenient way to use Arrays to convert an array to a 
> normal modifiable java.util.ArrayList, instead of this AbstractList.
> On Fri, Nov 18, 2022 at 5:23 PM Ethan McCue <ethan at mccue.dev 
> <mailto:ethan at mccue.dev>> wrote:
>     What situation were you encountering the exception? Was it when
>     trying to add to the returned list?
>     If so, that's expected. Arrays.asList only wraps an underlying
>     array, it can't grow it. By that measure List.of() is even more
>     unintuitive because you can't set anything.
>     On Fri, Nov 18, 2022, 11:06 AM Andreas Røsdal
>     <andreas.rosdal at gmail.com <mailto:andreas.rosdal at gmail.com>> wrote:
>         Hello!
>         I am an aspiring JDK contributor, having used Java in my work as
>         a developer.
>         I was recently surprised by an Exception thrown when using the
>         java.util.Arrays.asList() method
>         so I would like to propose some improvements to this API. In
>         particular:
>         - When using java.util.Arrays.asList() then AbstractList is
>         throwing UnsupportedOperationException which is not
>         user-friendly or intuitive.
>         - java.util.Arrays.asList() returning a private class called
>         ArrayList, which is not the usual java.util.ArrayList, so it's
>         not user-friendly or intuitive.
>         Since this would be my first contribution to the JDK, and the
>         goal is to complete the contribution with accepted pull request
>         and get the Arrays API improved, what would the first step to
>         making this first improvement to the JDK be?
>         I would also like to share a link to an open source project I've
>         been working on:
>         https://github.com/fciv-net/fciv-net
>         <https://github.com/fciv-net/fciv-net>
>         Thank you!
>         Regards,
>         Andreas R.

More information about the discuss mailing list