Ответ 1
Объектом values
является, очевидно, Object[]
, содержащий a String[]
, содержащий значения.
String[] stringValues = (String[])values[0];
Я использую веб-службу, которая возвращает простой объект типа "Объект". Отладка ясно показывает, что в этом объекте есть какой-то массив, поэтому мне было интересно, как я могу применить этот "объект" к массиву (или подобному)?
Я попробовал следующее:
Collection<String> arr = (Collection<String>) values;
Vector<String> arr = (Vector<String>) values;
ArrayList<String> arr = (ArrayList<String>) values;
Но ничего не получилось. Я всегда получаю InvocationTargetException.
Что я делаю неправильно?
Edit
К сожалению, мне пришлось удалить ссылку на изображение, которое показывало выход отладчика Eclipse, потому что оно больше не было доступно. Пожалуйста, не удивляйтесь, почему в ответах упоминается изображение, которого больше нет.
Объектом values
является, очевидно, Object[]
, содержащий a String[]
, содержащий значения.
String[] stringValues = (String[])values[0];
То, что у вас есть (в соответствии с отладочным изображением), представляет собой массив объектов, содержащий массив строк. Поэтому вам нужно что-то вроде:
Object[] objects = (Object[]) values;
String[] strings = (String[]) objects[0];
Вы не указали тип values
- если это уже Object[]
, тогда вы можете просто использовать (String[])values[0]
.
Конечно, даже с приведением в Object[]
вы все равно можете сделать это в одном утверждении, но это некрасиво:
String[] strings = (String[]) ((Object[])values)[0];