0

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>after Function。

4

2 回答 2

0

我假设您的 printArray 方法需要一个 Object[]

即使 Object 是 Integer 的超类,Object[] 也不是 Integer[] 的“超级”实例的定义。

假设此代码有效:

Object[] array = new Integer[10];

那么这也是有效的

array[0] = new Car("Mercedes");

但后者应该是不可能的。因此,对数组的“继承”限制。

例如列表也是如此

List<Object> myList = new ArrayList<Integer>();

它会给你一个编译器错误。

于 2013-09-26T22:21:16.640 回答
0

这是因为您使用泛型Function<Integer,Integer>番石榴试图将您传递的值转换为 Integer,但实际上您传递了 Object。

于 2013-09-26T22:25:50.763 回答