Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Это не вносит существенного изменения в производительности. Причины как ниже
, Когда Вы сохраняете или обновляете документ в mongodb, Вы, вероятно, решаете звонить, сохраняют или обновляют из другого приложения, которое могло быть записано в C#, Java, JavaScript, PHP или someother языке.
В этом случае, существует коммуникация процесса Интера (или сетевой вызов, если Вы дб монго работаете в другой машине). По сравнению с этим разница во времени берет, чтобы выборочно заменить документ обновлением и полностью заменить документ сохранением, незначительно. Между прочим, сохраните и обновите, у обоих, вероятно, будет сложность времени выполнения O (n), если не будет никаких индексов.
Для документа с 250 полями, размер документа является, вероятно, не слишком большим, который мы должны рассмотреть. Если размер документа обновления значительно меньше что размер сохранять документа, то используйте обновление.
Еще используют сохранение/обновление в зависимости от, который более изящен в клиентском коде.