Может ли int быть нулевым в Java? - PullRequest
136 голосов
/ 12 февраля 2010

Может ли int быть null в Java?

Например:

int data = check(Node root);

if ( data == null ) {
 // do something
} else {
 // do something
}

Моя цель - написать функцию, которая возвращает int. Упомянутый int хранятся на высоту узла, и если узел не присутствует, он будет нулевым, и я должен буду проверить.

Я делаю это для домашней работы, но эта конкретная часть не является частью домашней работы, она просто помогает мне справиться с тем, что я делаю.

Спасибо за комментарии, но, похоже, мало кто на самом деле читал, что написано в коде, я спрашивал, как еще я могу достичь этой цели; было легко понять, что это не работает.

Ответы [ 13 ]

0 голосов
/ 20 апреля 2014

Проверьте на null в вашем методе check () и верните недопустимое значение, например -1 или ноль, если null Тогда проверка будет для этого значения, а не для передачи нулевого значения. Это было бы нормальным делом в старое время «С».

0 голосов
/ 25 августа 2013

Я не эксперт, но я верю, что null эквивалент для int равен 0.

Например, если вы делаете int[], каждый слот содержит 0, а не null, если только вы не установите его в другое значение.

В некоторых ситуациях это может быть полезно.

0 голосов
/ 12 февраля 2010

Как упомянул @Glen в комментарии, у вас есть два способа обойти это:

  • использовать значение "вне границы". Например, если «данные» никогда не могут быть отрицательными при обычном использовании, вернуть отрицательное значение, чтобы указать, что оно недопустимо.
  • Используйте целое число. Просто убедитесь, что метод "check" возвращает Integer, и вы назначаете его Integer, а не int. Потому что, если «int» вмешивается, автоматическая упаковка и распаковка могут вызвать проблемы.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...