无法初始化ArrayListMultimap;由于筑巢?

时间:2016-08-29 11:42:36

标签: java initialization

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;)不适用         (实际和正式的参数列表长度不同)

这里有什么问题?

2 个答案:

答案 0 :(得分:4)

如果您的班级ArrayListMultimap来自 Google Common ,则它不起作用,因为构造函数私有,因此您无法调用{{1} }直接简单地调用ArrayListMultimap.create()代替下一个:

new ArrayListMultimap<Integer, ArrayList<ArrayList<Point2d>>>()

答案 1 :(得分:1)

更好地使用接口,请查看以下代码:

Multimap<Integer, ArrayList<ArrayList<Point2d>>> detectedAgentPositions = ArrayListMultimap.create();

请阅读https://google.github.io/guava/releases/19.0/api/docs/com/google/common/collect/ArrayListMultimap.html