сравните объект аннулировать!

Обратите внимание, что Hashtable более или менее устарела и была заменена на HashMap. Этот использует hash & (table.length-1) для достижения той же цели.

Он также выполняет некоторое сдвигание битов до того, как можно увидеть здесь . Это связано с плохими реализациями метода hashCode(), которые возвращают числа с низким разнесением.

12
задан JP Alioto 15 June 2009 в 03:51
поделиться

5 ответов

Попробуйте c! = Null в вашем операторе if. Вы сравниваете не сами объекты, вы сравниваете их ссылки.

24
ответ дан 2 December 2019 в 03:06
поделиться
!c.equals(null)

Эта строка вызывает метод equals для c, и если c имеет значение null, вы получите эту ошибку, потому что вы не можете вызывать какие-либо методы для null. Вместо этого вы должны использовать

c != null
11
ответ дан 2 December 2019 в 03:06
поделиться

Используйте c == null , поскольку вы сравниваете ссылки , а не объекты.

10
ответ дан 2 December 2019 в 03:06
поделиться

Использовать c == null

Метод equals (обычно) ожидает аргумент типа customer и может вызывать некоторые методы объекта. Если этот объект имеет значение null, вы получите исключение NullPointerException.

Также c может иметь значение null, а вызов c.equals может вызывать исключение независимо от переданного объекта

8
ответ дан 2 December 2019 в 03:06
поделиться

Скорее всего, в этом случае объект c имеет значение NULL.

Возможно, вы захотите переопределить реализацию equals по умолчанию для клиента, если вам нужно вести себя по-другому.

Также убедитесь, что переданный объект не является нулевым до вызова функций на нем.

3
ответ дан 2 December 2019 в 03:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: