| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Преобразование массивов к новому типу |
| Автор: Aprol 12.3.2009, 14:32 | ||||
| Есть такой вот массив строк: String[] arr=.....; Нужно создать другой массив, той же размерности и по необходимости использовать новый тип массива. В итоге должен быть Integer[],Double[],String[] И т.д. Создать новый массив нужной размерности и типа вроде не проблема:
Получу в итоге например Integer[],а как теперь заполнить newArray значениями из arr? Можно конечно наплодить кучу условий instanceof и в зависимости от них приводить типы:
Ну и в таком духе для каждого типа, но имхо как то криво. И как это преобразовать под матрицы? |
| Автор: ivg 12.3.2009, 16:44 |
| Грамотное применение идей http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BB%D0%B8%D0%BC%D0%BE%D1%80%D1%84%D0%B8%D0%B7%D0%BC_%D0%B2_%D1%8F%D0%B7%D1%8B%D0%BA%D0%B0%D1%85_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F решает большую часть подобного рода проблем. |
| Автор: Platon 12.3.2009, 17:04 |
| ivg, полностью согласен. Правда, могу сделать предложение для простоты - скакать от String, т.е. приводить все типы к строке, а потом к нужному типа. |
| Автор: Aprol 13.3.2009, 04:06 | ||||||
А разве вот этот код не позволит мне создать массив требуемого типа?:
Класс элементов то я знаю... Наверное криво объяснил, но изначально есть String[] кот. содержит строки, вот их то и нужно привести к новому классу. String[] приходит из HttpServletRequest .......................................
Вот он и String[] который содержит значения параметров формы, они всегда будут приходить в виде строк. Есть еще бизнес-логика в ней уже используются конкретные массивы Integer[],Double[] и т.д. Хранятся эти массивы в Object. Такая последовательность получается: получаю String[]->получение нового массива->сохранение нового массива в Object-> Поэтому мне нужно превести массив String[] в нужный массив. При этом какой класс я знаю(указан ввиде строки). |
| Автор: math64 13.3.2009, 09:43 | ||
| Если у теба используются Double, Integer ... а не double, int ..., для каждого используемого типа нужно создать фабрику, создающую объект нужного типа из строки. В случае 2-, 3- мерного массива элементы массива будут массивами. Тип элемента массива можно получить так:
|
| Автор: LSD 13.3.2009, 12:57 | ||
Массив - позволит. А дальше тебе нужно будет как-то разбираться с элементами этих массивов. |