Как получить содержимое массива в объект? - PullRequest
0 голосов
/ 25 ноября 2011

У меня есть arraylist (например, CustInfo), который содержит коллекцию объектов (Cust_details, Cust_Auth) для классов Java, которая, в свою очередь, имеет набор значений для переменных (например ,.Cust_name, Cust_addr).

Теперь моя проблема в том, что у меня есть новый класс (например, Priviliged_Cust), в котором есть определенные переменные, значения которых должны быть взяты из объектов, добавленных в массив.

Я попытался типизировать arraylist к новому классу и получить данные, используя get (index), но он бросил исключение castException.

Пожалуйста, помогите мне с этим !!!

Дополнительное объяснение,

Сначала выполняется запрос, и результат отображается в соответствующие переменные соответствующего класса. с помощью методов установки, использующих экземпляр объекта этого конкретного класса. затем этот объект добавляется в Arraylist и возвращается Arraylist.

Во-вторых, это происходит с набором запросов, и данные сопоставляются с соответствующими классами и объект добавлен в массив и соответствующие списки возвращаются в соответствующие методы вызова.

Мой вопрос: я создал новый класс, который содержит то же поле, что и в предыдущих классах, и он также должен был отображаться на те же переменные, что и вышеперечисленные классы из массива, который имеет объекты, которые содержат значения полей, которые необходимо сопоставить.

Поскольку запросы возвращают только Arraylist, мне нужно получить объект из моделей и тогда мне нужно сопоставить каждое из полей соответственно.

Надеюсь, эта информация поможет.

Ответы [ 6 ]

1 голос
/ 25 ноября 2011

Не используйте коллекции для хранения данных, которые не связаны друг с другом. Используйте переменные-члены с геттерами и сеттерами для этих значений. Затем вы можете получить любое желаемое значение, просто позвонив получателю.

Если вы хотите создать новый Объект, который имеет некоторые значения из ваших существующих данных, не пытайтесь приводить ваши данные. Просто создайте новый объект и используйте параметры конструктора, чтобы присвоить ему значения.

0 голосов
/ 25 ноября 2011

Как и некоторые другие уже опубликовали, немного трудно понять, что именно вы хотите получить ответ.

Мой ответ на ваш вопрос заключается в том, что у вас есть ArrayList, содержащий объекты классов, и вы хотите перенести некоторые детали объекта из одного из них в другой класс (называемый Priviliged_Cust)

Следовательно:

<BaseClass> temp = <ArrayList-name>.get(index);    // puts the desired object into a new reference 

Priviliged_Cust newCust = new Priviliged_Cust (temp); // copies the details of the object referred by temp 
                                                  //and instantiates a new Priviliged_Cust from it.

Это будет работать, только если в вашем классе Priviliged_Cust есть конструктор, который принимает объект в качестве параметра и затем копирует сведения о базе в новый класс.

0 голосов
/ 25 ноября 2011

трудно ответить, не видя код, но я думаю, вы хотите построить объект с данными, распределенными по полям в разных объектах в массиве.Вы можете использовать dozer или аналогичные инструменты для этой цели (сопоставление объекта с объектом).определите сопоставления и затем выполните итерации по списку. В конце итерации вы должны получить требуемую информацию о вашем объекте.

0 голосов
/ 25 ноября 2011

Во-первых, я не совсем понял, как вы структурировали свой код, некоторые примеры кода помогли бы нам лучше понять.

Сказав, что я предполагаю, что ваша проблема в том, что у вас есть anObject и anotherObjectи вы хотите, чтобы anotherObject имел некоторые из тех же свойств, что и anObject.Есть несколько способов решить эту проблему.

Два простых способа включают в себя:

  1. У anotherObject расширение anObject (Наследование)

  2. имеют anotherObject содержат anObject (состав)

0 голосов
/ 25 ноября 2011
ArrayList<Priviliged_Cust> CustInfo = new ArrayList<Priviliged_Cust>();

Использование Generics

0 голосов
/ 25 ноября 2011

Я предлагаю вам использовать дженерики для проверки типов коллекций.

List<CustInfo> custList = ...
CustInfo ci = custList.get(n); // no cast required.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...