При использовании toArray()
происходит следующее: новый массив объектов выделяется с помощью new Object[size]
, и каждый элемент массива будет ссылкой на один из ваших элементов строки.Даже если на самом деле указывает на строки, это массив типа Object
.
. При использовании toArray(T[] a)
происходит следующее: новые T-массивы выделяются с помощью
java.lang.reflect.Array
.newInstance(a.getClass().getComponentType(), size)
и каждый из массива будет ссылкой на одну из ваших строк, потому что a.getClass().getComponentType
вернет String.class
в вашем случае.На этот раз это массив типа String.