我正在使用Guava的Multimap,如下所示,因为我可以多次使用相同的键,但值不同。
Multimap<Long, Plesk> map = ArrayListMultimap.create();
// populate data into map
// extract value from the above map
Collection<Plesk> plesk = map.get(id);
现在从同一个multimap我提取一个特定的键值。现在我如何检查plesk
变量是否为空?打印出map
变量后,我看到一个条目为:
1100178=[null]
所以plesk
变量的值[null]
为1100178
,如果我使用下面的代码来检查null和空,那么它不起作用:
if (CollectionUtils.isEmpty(plesk)) {
// do stuff
}
检查multimap的值是否为null的正确方法是什么?
答案 0 :(得分:4)
Multimap.get(key)
的结果绝不是null
。如果没有与该键相关联的值,则返回空Collection
。
您的plesk
集合似乎是一个包含单个元素的集合,而该单个元素是null
。
答案 1 :(得分:0)
正如其他人已经说过的那样,multimap.get(key)
的结果永远不会为null,如果没有关联的值,则返回空集合。
从您的问题中可以理解,您想检查是否存在一个值,如果找不到特定键的值,请执行一些操作。
我会做这样的事情:
Multimap<String, String> multimap = LinkedListMultimap.create();
multimap.put("Name", "SomeName");
multimap.put("ID", "");
multimap.put("City", "SomeCity");
Collection<String> contentsofID = multimap.get("ID");
if (contentsofID.toString().equals("[]")) {
// This means that there is no value in it
// Then perform what you want
}