java – Arrays.asList().contains()给出错误的结果
发布时间:2020-12-15 05:21:10 所属栏目:Java 来源:网络整理
导读:代码: 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) .c
代码:
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 我也试过了所有其他的价值观. 解决方法
Arrays#asList返回泛型类型.
一种解决方案是将数组更改为Integer而不是int: private static final Integer[] GOOGLE_DIRECTION_ID_FOR_MATCH = { 11,15 }; 见到这个very useful link我找到了. Arrays#asList返回List< int []>而不是List< Integer> (你想要什么 – 回想一下,没有这样的东西List< int>).另外,最好提一下如果int被装箱为Integer,那么要小心.因为例如:Integer(11)!= 11. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |