【发布时间】:2019-07-02 02:16:40
【问题描述】:
一切似乎都很好,但是这一行有一个错误:
return new ArrayList<Integer>(Arrays.asList(i, FACTORISATION(n/i)));
错误是:构造函数 ArrayList(Arrays.asList(i), ArrayList) 未定义
我知道错误表示 Array 的 asList 方法不采用 ArrayList,但是如何将 FACTORISATION 返回的项目添加到列表中?这个递归真的让我头疼
【问题讨论】:
-
我认为错误信息不准确,但是您的第二个 return 语句没有意义。
Arrays.asList()不会展平其输入。它只是将所有内容汇总到一个列表中。Arrays.asList(i, FACTORISATION(n/i))返回一个List<Object>,你不能将它传递给List<Integer>。 -
ArrayList<Integer>没有足够的空间容纳列表。您必须单独创建列表并调用list.add(i);然后list.addAll(FACTORISATION(n/i))。顺便说一句:for循环中的return...似乎是一个没有任何条件检查的错误。
标签: java