曹耘豪的博客

Java9实战

  1. Map.of
    1. 注意事项
    2. 解决

Map.of

注意事项

1
Map.of("a", null) // NPE

解释:Java9的Map.of构造方法,参数的key和value都不能为null

解决

自己构造HashMap

1
2
3
4
5
6
7
8
9
10
11
12
@SuppressWarnings("unchecked")
public static <K, V> Map<K, V> of(Object... kv) {
if ((kv.length & 1) == 1) {
throw new IllegalArgumentException();
}
Map<K, V> map = new HashMap<>();
for (int i = 0; i < kv.length; i += 2) {
map.put((K) kv[i], (V) kv[i + 1]);
}

return map;
}
   /