RFR: 8282662: Use List/Set.of() factory methods to reduce memory consumption
liach
duke at openjdk.java.net
Mon Mar 7 15:57:05 UTC 2022
On Mon, 7 Mar 2022 15:11:50 GMT, Сергей Цыпанов <duke at openjdk.java.net> wrote:
> `List.of()` along with `Set.of()` create unmodifiable `List/Set` but with smaller footprint comparing to `Arrays.asList()` / `new HashSet()` when called with vararg of size 0, 1, 2.
>
> In general replacement of `Arrays.asList()` with `List.of()` is dubious as the latter is null-hostile, however in some cases we are sure that arguments are non-null. Into this PR I've included the following cases (in addition to those where the argument is proved to be non-null at compile-time):
> - `MethodHandles.longestParameterList()` never returns null
> - parameter types are never null
> - interfaces used for proxy construction and returned from `Class.getInterfaces()` are never null
> - exceptions types of method signature are never null
Notice list.of will have the downside of copying the input array when the size is not small while arrays aslist does not. Is the tradeoff worth it?
-------------
PR: https://git.openjdk.java.net/jdk/pull/7729
More information about the security-dev
mailing list