«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему вызов статического метода по нулевой ссылке не вызывает исключение NullPointerException?

Почему вызов статического метода по нулевой ссылке не вызывает исключение NullPointerException?

Опубликовано 12 ноября 2024 г.
Просматривать:281

Why Doesn\'t Invoking a Static Method on a Null Reference Throw a NullPointerException?

Понимание вызова статического метода и нулевых ссылок

Вопреки распространённым заблуждениям, вызов (статического) метода по нулевой ссылке не приводит к исключение NullPointerException. Чтобы понять такое поведение, важно усвоить концепцию статических методов в Java.

Статические методы: общий ресурс

В отличие от нестатических методов (экземпляров), которые связаны с конкретными экземплярами объектов, статические методы привязаны к классу, которому они принадлежат. Они не требуют доступа к объекту, поскольку работают на уровне типа.

Доступ к статическим методам: через выражения типов

Правильный способ вызова статического метода заключается в использовании выражения типа, такого какWhy.test(). Этот подход гарантирует, что статический метод вызывается непосредственно в классе без участия экземпляра объекта. выражения ссылки на объект, это настоятельно не рекомендуется и может привести к путанице. При использовании этого подхода (Why aNull = null; aNull.test()) объявленный тип ссылки (Why) определяет вызываемый статический метод.

Последствия использования выражений ссылок на объекты

Проверки на null игнорируются: Поскольку объект не требуется, проверка на null для ссылки (aNull) не имеет значения.

    Время выполнения type игнорируется:
  • Фактический тип объекта во время выполнения (если он не равен нулю) не влияет на отправку статического метода.
  • Заключение
  • Чтобы избежать путаницы и обеспечить предсказуемость, всегда вызывайте статические методы с использованием выражений типов. Понимание природы статических членов и механизмов доступа к ним имеет решающее значение для написания правильного и удобного в сопровождении кода Java.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3