在开发过程中经常会使用Arrays和Collections这两个工具类在数组和列表之间进行转换,使用起来非常方便,但有时候会不小心陷入陷阱里面,看代码
public static void main(String[] args) { |
答案为5 是不是?但是运行代码看看然而 结果为 1;是不是很意外?很吃惊?
别急,慢慢回答你的疑惑,先看下 Arrays.asList 的底层实现代码,
public static <T> List<T> asList(T... a) { |
通过看底层源码,我们知道这个功能是通过泛型实现的,我们也知道java8个基本数据类型是不能泛型化的,在上面的代码中 Arrays.asList 将数组当做一个整体进行处理了,
为了解决这个问题我们将 代码稍稍改下就好,将基本数据类型变为包装类型就解决了
public static void main(String[] args) { |