这有效:
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());
我收到错误:
类型不匹配:无法从Multimap Object,Object转换为 Multimap String,String
我尝试添加&lt;&gt;在许多地方但没有成功。我做错了什么?
我仍然坚持使用Java 7.
答案 0 :(得分:4)
您可以对create
:
Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8有一些类型推断更改,因此它在没有提示的情况下正常工作。
答案 1 :(得分:-1)
它需要Java 7中的显式类型
Multimap<String, String> n = Multimaps.synchronizedMultimap(
HashMultimap.<String, String>create());
Java 8在泛型类型推断中引入了一些改进,因此初始代码在Java 8中起作用
Multimap<String, String> n = Multimaps.synchronizedMultimap(HashMultimap.create());