我正在尝试执行此Java如何编程任务:“编写计算产品的应用程序 使用可变长度参数列表传递给方法'product'的一系列整数。
我收到类型VarLenArgumentList中的方法产品(Integer ...)不适用的错误消息 参数(ArrayList)。为什么如此,如果Java将可变长度参数列表视为数组? ArrayList不是一个数组吗?
完成任务的另一种方法是什么?
CComPtr<IMyCorrectInterface> ptrMyInterface;
ptrMyInterface.CoCreateInstance(L"ProgID", nullptr, CLSCTX_ALL); // WORKS!!!
答案 0 :(得分:4)
Integer...
参数接受任意数量的Integer
个对象或数组Integer[]
。由于ArrayList<Integer>
不是Integer[]
,因此不接受。{/ p>
ArrayList
不是数组,它是Collection
,而java中的数组是不同的对象。
但是,您可以使用toArray(T)
方法轻松将ArrayList
转换为数组。但请注意它将是一个不同的对象,这主要是当你只想从集合中读取而不是写入它时。
答案 1 :(得分:0)
完成任务的另一种方法是什么?
您可以将整数列表传递给方法。
public static int product (List<Integer> integerList)
{
Integer total = 0;
for (Integer element : integerList)
total *= element;
return total;
}