如何检查 Multimap 的值是否为 null 或为空?

How to check value of Multimap is null or empty?

我正在使用 Guava 中的 Multimap,如下所示,因为我可以多次使用相同的键但使用不同的值。

Multimap<Long, Plesk> map = ArrayListMultimap.create();
// populate data into map

// extract value from the above map
Collection<Plesk> plesk = map.get(id);

现在我正在从同一个多图中提取特定的键值。现在如何检查 plesk 变量是否为空?在我打印出 map 变量后,我看到一个条目为:

1100178=[null]

所以 plesk 变量的值是 [null] for id 1100178 如果我使用下面的代码来检查 null 和 empty 然后它不起作用:

if (CollectionUtils.isEmpty(plesk)) {
    // do stuff
}

检查 multimap 的值是否为 null 的正确方法是什么?

Multimap.get(key) 的结果永远不会是 null。如果没有与该键关联的值,它 returns 一个空的 Collection

您的 plesk 集合似乎是一个只有一个元素的集合,那个元素是 null

正如其他人已经说过的,multimap.get(key) 的结果永远不会为 null,如果没有关联的值,returns 将是一个空集合。
从你的问题中,我了解到你想检查是否存在值,如果没有找到特定键的值,则执行一些操作。
我会做这样的事情:

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
}