集合中的toArray()方法,可以把集合直接转为数组。
比如我想把一个保存String字符串的集合转为一个数组,但是在使用时需要注意,集合对象直接调用toArray()方法返回的是一个Object数组,虽然集合已经使用了泛型,但是还是有办法可以往集合中加其他类型的元素的,所以返回的并不是我们本身指定类型的数组。
可以看到如果前面定义String[] 会提示强制类型转换,但是在转换后会出现类型转换异常的错误。
这是因为如果强制类型转换是需要先向上转型再向下转型,这里返回的Object数组并不是由String数组向上转型而来,所以把Object数组直接转换成String数组是不可以的。
那该怎么办?
正确的做法是创建一个跟这个集合大小相等的String数组,再用集合对象调用toArray()方法,并把创建的String对象传入,相当于把集合中的内容放到新创建的这个数组中。如下