3

コード :

private static final int[] GOOGLE_DIRECTION_ID_FOR_MATCH = { 11, 12, 13,
            14, 15 };
Log.e(TAG, "index : "
                        + Arrays.asList(GOOGLE_DIRECTION_ID_FOR_MATCH).indexOf(11));

Log.e(TAG, "contains : "
                        + Arrays.asList(GOOGLE_DIRECTION_ID_FOR_MATCH)
                                .contains(11));

上記のステートメント ログ:

index : -1
contains : false

他のすべての値も試しました。

4

5 に答える 5

12

Arrays#asListはジェネリック型を返します。

1 つの解決策は、配列をIntegerの代わりに変更することintです。

private static final Integer[] GOOGLE_DIRECTION_ID_FOR_MATCH = { 11, 12, 13,
            14, 15 };

私が見つけたこの非常に便利なリンクを参照してください。


Arrays#asListは返しますが、そうではList<int[]>ありませんList<Integer>(あなたが望んでいたこと - そのようなものがないことを思い出してくださいList<int>)。

また、 anintが にボックス化されている場合はInteger注意が必要です。たとえば、Integer(11) != 11 .

于 2013-08-06T12:35:16.373 に答える
7

Arrays.asListfor int[]arg は、List<int[]>1 つの要素を持つ を作成します。これが、含まれていない作業を含む理由です

于 2013-08-06T12:44:00.813 に答える