Как HashSet может записать пустую запись без исключения NullPointerException при вычислении хеш-кода

Я знаю все эти странныефилософские причины Зачемноль экземпляры разрешены в каждой коллекции

Но, в отличие от списков, положение элементов множеств (даже карт) также зависит отхэш-код элемента, добавляемого тем самым к самому элементу (за исключением исключений, таких какLinkedHashSet где порядок вставки сохраняется)

Таким образом, при вычислении хеш-кода элемента, добавляемого в коллекцию, и, если предполагается, что этот элементноль не должно это броситьNPE ?

null.hashCode()

Есть ли какой-то типнуль-проверка

Сначала я подумалSystem.out.println (setReference) тоже должен генерироватьNPE если естьноль, но после небольшого исследования я обнаружил, что фактический метод, который вызывается, является статическимvalueOf (Object obj) скорее, чемнанизывать() метод, который абсолютно безопасен от того, что указано в Java-документах, я наконец-то должен был прояснить ситуацию по этому поводу ...

но это все еще преследует меня, я знаю, что я немного одержим мелкими деталями, но я должен это сделать, потому что в настоящее время я готовлюсь к OCAJP 8, поэтому я рискнул понизить рейтинг, чтобы получить достоверное объяснение, так как я не нашел ничего в java-документах, касающихся этого ...

поэтому, что операции в наборах являются нулевыми безопасными, комплексный ответ приветствуется.

Ответы на вопрос(1)

Ваш ответ на вопрос