RFR: 8351344: Avoid explicit Objects.requireNonNull in String.join

Jaikiran Pai jpai at openjdk.org
Thu Mar 6 12:41:00 UTC 2025


On Thu, 20 Feb 2025 09:30:02 GMT, Andrey Turbanov <aturbanov at openjdk.org> wrote:

> We have helpful NPE messages now - they are more user-friendly.
> And shorter methods are more likely to be inlined.

src/java.base/share/classes/java/lang/String.java line 3649:

> 3647:             Iterable<? extends CharSequence> elements) {
> 3648:         Objects.requireNonNull(delimiter);
> 3649:         Objects.requireNonNull(elements);

Hello Andrey, I have a different opinion about this. I think removing existing calls to `Objects.requireNonNull()` in favour of implicit null check (some times too far away in the code) isn't useful. 

You noted that the implicit `NullPointerException` stacktrace are more user friendly now. I think you can get similar level of useful information from `Objects.requireNonNull()` too. In these two specific cases, what you could perhaps do is change those calls to even pass the `message` so that it's clear what parameter is `null`. Something like:

    Objects.requireNonNull(delimiter, "delimiter");
    Objects.requireNonNull(elements, "elements");

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

PR Review Comment: https://git.openjdk.org/jdk/pull/23710#discussion_r1983281966


More information about the core-libs-dev mailing list