private ArrayListMultimap<Integer, ArrayList<ArrayList<Point2d>>> detectedAgentPositions;
上面的代码没有给我任何错误,即一切都整齐地编写和导入等。但是,当我尝试像这样初始化detectedAgentPositions
时:
private ArrayListMultimap<Integer, ArrayList<ArrayList<Point2d>>> detectedAgentPositions
= new ArrayListMultimap<Integer, ArrayList<ArrayList<Point2d>>>();
我收到以下错误:
没有为ArrayListMultimap找到合适的构造函数(没有参数) 构造函数ArrayListMultimap.ArrayListMultimap(int,int)不适用 (实际和正式的参数列表长度不同) 构造函数ArrayListMultimap.ArrayListMultimap(Multimap&lt;?extends Integer,?extends ArrayList&gt;&gt;)不适用 (实际和正式的参数列表长度不同)
这里有什么问题?
答案 0 :(得分:4)
如果您的班级ArrayListMultimap
来自 Google Common ,则它不起作用,因为构造函数私有,因此您无法调用{{1} }直接简单地调用ArrayListMultimap.create()
代替下一个:
new ArrayListMultimap<Integer, ArrayList<ArrayList<Point2d>>>()
答案 1 :(得分:1)
更好地使用接口,请查看以下代码:
Multimap<Integer, ArrayList<ArrayList<Point2d>>> detectedAgentPositions = ArrayListMultimap.create();