如何检查Multimap的值是null还是空?

时间:2017-03-14 23:52:19

标签: java guava multimap

我正在使用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的正确方法是什么?

2 个答案:

答案 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
}