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

java – 我错过了什么,或者varargs打破Arrays.asList?

发布时间:2020-12-15 04:50:30 所属栏目:Java 来源:网络整理
导读:private void activateRecords(long[] stuff) { ... api.activateRecords(Arrays.asList(specIdsToActivate)); } 不应该调用Arrays.asList返回Longs列表吗?相反,它返回一个List long [] public static T ListT asList(T... a) 方法签名与结果一致,varargs将
private void activateRecords(long[] stuff) {
    ...
    api.activateRecords(Arrays.asList(specIdsToActivate));
  }

不应该调用Arrays.asList返回Longs列表吗?相反,它返回一个List< long []>

public static <T> List<T> asList(T... a)

方法签名与结果一致,varargs将整个数组抛出到列表中.它与new ArrayList()相同; list.add(myArray)是的,我知道它的意思是这样使用:Arrays.asList(T t1,T t2,T t3)

我想我得到的是,而不是varargs形式,为什么我不能只使用我的旧asList方法(至少我认为这是它以前的工作方式),它将获取内容并将它们单独放入一个列表?这样做还有其他干净的方法吗?

解决方法

那是因为long []和Long []是不同的类型.

在第一种情况下,T是long [],在第二种情况下T是Long.

如何解决这个问题?首先不要使用long []?

(编辑:李大同)

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

    推荐文章
      热点阅读