map函数简单地遍历整数数组并将函数应用于它,然后将其添加到输出数组。我收到此错误,我似乎无法找到它将对象转换为整数的位置。 map函数返回一个Integer数组,并发送到printArray,它接受一个Integer数组。有什么想法吗?
public static void main(String[] args)
{
Function<Integer,Integer> function = new CalculateSuccessor<Integer,Integer>();
Integer[] integerArray={1,3,4,2,5};
printArray(map(function, integerArray));
}
我删除了剩下的代码,因为找到的解决方案是在函数之后的<Integer, Integer>
。
答案 0 :(得分:0)
我假设你的printArray方法需要一个Object []
即使Object是Integer的超类,Object []也不是Integer []的“超级”实例的定义。
假设此代码有效:
Object[] array = new Integer[10];
然后这也是有效的
array[0] = new Car("Mercedes");
但后者不可能。因此对数组的“继承”限制。
同样适用于列表例如
List<Object> myList = new ArrayList<Integer>();
它会给你一个编译器错误。
答案 1 :(得分:0)
因为你使用泛型Function<Integer,Integer>
guava正在尝试将你传递给的值转换为Integer但是你实际上传递了Object。