RFR: JDK-8285932 Implementation of JEP-430 String Templates (Preview) [v3]
Rémi Forax
forax at openjdk.org
Fri Oct 28 20:01:30 UTC 2022
On Fri, 28 Oct 2022 19:51:21 GMT, Franz Wilhelmstötter <duke at openjdk.org> wrote:
>> src/java.base/share/classes/java/lang/template/TemplateRuntime.java line 211:
>>
>>> 209: @SuppressWarnings("unchecked")
>>> 210: public static <E> List<E> toList(E... elements) {
>>> 211: return Collections.unmodifiableList(Arrays.asList(elements));
>>
>> This is List.of(), please use List.of() instead
>
> `List.of()` can't be used here, since the elements are nullable, according to the documentation. But the the returned list can still be modified, by changing the given `elements` array. The input array must be explicitly copied:
>
> public static <E> List<E> toList(E... elements) {
> return Collections.unmodifiableList(new ArrayList<>(Arrays.asList(elements)));
> }
Yes, it only occurs to me mid review, that said there is already an implementation in the jdk of a compact immutable that allow null inside the JDK (this implementation is used when stream.toList() is used).
Using that implementation will avoid a bunch of indirection
-------------
PR: https://git.openjdk.org/jdk/pull/10889
More information about the compiler-dev
mailing list