0

map 関数は、単純に整数配列を反復処理し、関数をそれに適用してから、出力配列に追加します。このエラーが発生し、オブジェクトを整数にキャストしている場所が見つからないようです。map 関数は整数配列を返し、整数配列を取る printArray に送信されます。何か案は?

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[] は、Object が Integer のスーパー クラスであっても、Integer[] の「スーパー」インスタンスの定義ではありません。

このコードが有効であると仮定します。

Object[] array = new Integer[10];

これも有効です

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

しかし、後者は可能であってはなりません。したがって、配列の「継承」制限。

たとえばリストにも同じことが言えます

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

コンパイルエラーが発生します。

于 2013-09-26T22:21:16.640 に答える