如何在一行中使用 Guava 创建同步多图?
How to create a synchronized multimap with Guava in one line?
这个有效:
Multimap<String, String> m = HashMultimap.create();
这也有效:
Multimap<String, String> m = HashMultimap.create();
Multimap<String, String> n = Multimaps.synchronizedMultimap(m);
但是为什么这不起作用?
Multimap<String, String> n = Multimaps.synchronizedMultimap(HashMultimap.create());
我收到一个错误:
Type mismatch: cannot convert from Multimap Object,Object to
Multimap String,String
我尝试在很多地方添加 <> 但没有成功。我做错了什么?
我仍然坚持 Java 7.
您可以为 create
使用显式类型提示:
Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8 进行了一些类型推断更改,因此在没有提示的情况下也能正常工作。
Java 7
中需要显式类型
Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8 引入了泛型类型推断的一些改进,因此初始代码与 Java 8
中的一样
Multimap<String, String> n = Multimaps.synchronizedMultimap(HashMultimap.create());
这个有效:
Multimap<String, String> m = HashMultimap.create();
这也有效:
Multimap<String, String> m = HashMultimap.create();
Multimap<String, String> n = Multimaps.synchronizedMultimap(m);
但是为什么这不起作用?
Multimap<String, String> n = Multimaps.synchronizedMultimap(HashMultimap.create());
我收到一个错误:
Type mismatch: cannot convert from Multimap Object,Object to Multimap String,String
我尝试在很多地方添加 <> 但没有成功。我做错了什么?
我仍然坚持 Java 7.
您可以为 create
使用显式类型提示:
Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8 进行了一些类型推断更改,因此在没有提示的情况下也能正常工作。
Java 7
中需要显式类型Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8 引入了泛型类型推断的一些改进,因此初始代码与 Java 8
中的一样Multimap<String, String> n = Multimaps.synchronizedMultimap(HashMultimap.create());