RFR: 8371953: Document null handling in core reflection APIs [v3]

David Holmes dholmes at openjdk.org
Wed Nov 19 07:34:30 UTC 2025


On Wed, 19 Nov 2025 06:45:46 GMT, David Holmes <dholmes at openjdk.org> wrote:

>> src/java.base/share/classes/java/lang/Class.java line 3839:
>> 
>>> 3837:      */
>>> 3838:     public boolean isNestmateOf(Class<?> c) {
>>> 3839:         Objects.requireNonNull(c);
>> 
>> So the behavior change here is calling isNestmateOf(null) on a class object for a primitive or array class will throw NPE when it didn't throw it previously.  Technically an incompatible change but I agree it's in the weeds when it comes to impact.
>
> Removed erroneous comment

I went back through the nestmates design archives that I have to see if this particular issue was ever raised but I could not find it called out. I'm not a fan of explicit null checks as they penalize all the good code. I also don't think the inconsistency is/was an issue. If code does not need to use a parameter to complete its function then it also doesn't need to validate the unused parameter. YMMV.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28336#discussion_r2540864248


More information about the core-libs-dev mailing list