Почему нулевое значение соответствует шаблону записи?JAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Почему нулевое значение соответствует шаблону записи?

Сообщение Гость »


Я пробовал примеры сопоставления шаблонов с шаблонами записей в Java 21. Официальная документация утверждает, что нулевое значение не соответствует ни одному шаблону записи. Однако я попробую этот пример:

record Point(Целое число x, Целое число y) {} общественный класс MainPatternMatchingRecord { public static void main(String[] args) { printSum (новая точка (ноль, 2)); } Private static void printSum (Object obj) { if (obj instanceof Point(var x, var y)) { System.out.println(x + 1); } } } Здесь, в моем понимании JEP, new Point(null, 2) не должен совпадать с instanceof Point(var x, var y) Но при запуске программы выбросил это исключение:

Исключение в потоке «main» java.lang.NullPointerException: невозможно вызвать «java.lang.Integer.intValue()», поскольку «x» имеет значение null Почему происходит такое поведение? Как правильно интерпретировать, что нулевое значение не соответствует ни одному шаблону записи?
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»