Я хочу , чтобы проверить , пуст ли коллекция и null
. Может ли кто-нибудь, пожалуйста, дайте мне знать лучшую практику.
В настоящее время я проверяю, как показано ниже:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
java
collections
user1635014
источник
источник
null == sampleMap
а неsampleMap == null
. Большинство людей находят последнее более читабельным - первое является пережитком других языков.See Effective Java: Item 43 - Return empty arrays or collections, not nulls.
if (null = sampleMap)
на Java, вы получите ошибку компиляции. Именно в этом смысл моего первого комментария. «Причина» этого зависит от языка, но была распространена на другие языки, несмотря на снижение читабельности, потому что люди не думали, почему они это делают.Ответы:
Если вы используете Apache Commons Коллекции библиотеки в вашем проекте, вы можете использовать
CollectionUtils.isEmpty
иMapUtils.isEmpty()
методы , которые , соответственно , проверить , если коллекция или карта пуста или нулевой (т.е. они являются «нуль-сейф»).Код этих методов более или менее написан пользователем @icza в своем ответе.
Независимо от того, что вы делаете, помните, что чем меньше кода вы пишете, тем меньше кода вам нужно тестировать, так как уменьшается сложность кода.
источник
isNullOrEmpty
.Это лучший способ проверить это. Вы можете написать вспомогательный метод для этого:
источник
Map<?>
.||
Оператор является оператором короткого замыкания, то есть, если левый операнд естьtrue
, он не будет оценивать правый операнд. Так что еслиm == null
, тоm.isEmpty()
не будет вызван (не нужен, результат естьtrue
).Если вы используете Spring Framework, вы можете использовать его
CollectionUtils
для проверки как Коллекций (Список, Массив), так и Карты и т. Д.источник
Лично я предпочитаю использовать пустые коллекции,
null
а алгоритмы работать так, чтобы для алгоритма не имело значения, является ли коллекция пустой или нет.источник
Когда вы используете весну, то вы можете использовать
где obj - это любой [карта, коллекция, массив, что-нибудь ...]
в противном случае: код:
для строки лучше всего:
источник
Если вам нужно проверить на ноль, это путь. Однако, если у вас есть контроль над этим, просто возвращайте пустую коллекцию, когда это возможно, и проверяйте только на пустое позже.
Этот поток примерно такой же, как в C #, но принципы в равной степени применимы и к Java. Как упомянуто там, нуль должен быть возвращен, только если
источник
Вы можете использовать
org.apache.commons.lang.Validate
«s„ notEmpty метод“:Validate.notEmpty(myCollection)
-> Проверить, что указанная коллекция аргументов не имеет ни нулевого, ни нулевого размера (без элементов); в противном случае выбрасывать исключение.источник
Мы проверим, является ли объект Collection пустым, нулевым или нет. все эти методы, которые приведены ниже, присутствуют в пакете org.apache.commons.collections4.CollectionUtils.
Проверьте список или установите тип коллекции объектов.
Проверьте на карте тип объектов.
Тип возврата всех методов - логический.
источник
Для всех коллекций, включая карту, используйте:
isEmpty
метод, который есть в этих объектах коллекции. Но вы должны сделать нулевую проверку перед:источник