加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读