Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 11
1

XmlJava. Сериализация класса с полем - массивом объектов другого класса

27.11.2015, 11:27. Просмотров 786. Ответов 2
Метки нет (Все метки)

Есть 2 класса Студент и Академ.группа(с полем - массивом студентов). Необходимо выполнить сериализацию и десереализацию в XML. Для этого созданы ещё 2 класса.
При сериализации в xml не записываются данные, которые относятся к объктам класса Студент, а записывается только собственное поле класса Академ.группа(то есть имя группы). В чем причина?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import java.io.Serializable;
 
public class Student  implements Serializable{
      private static final long serialVersionUID = 6802552080830378203L;
      private String name,surname;
      private int age;
 
    public void setName(String name)
    {
      this.name=name;
    }
    public void setSurname(String surname)
    {
      this.surname=surname;
    }
    public void setAge(int age)
    {
      this.age=age;
    }
    public String getName()
    {
      return name;
    }
    public String getSurname()
    {
      return surname;
    }
    public int getAge()
    {
      return age;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import java.io.Serializable;
 
public class Group  implements Serializable{
     private static final long serialVersionUID = -4909779210010719389L; 
     private String name; 
     private Student [] student={new Student()};
     public void setGroup(Student []student)
     {      
         this.student=student;
     }
     public void setGroupName(String name)
     {
         this.name=name;
     }
     public Student getGroup(int i)
     {
         return student[i];
     }
     public String getGroupName()
     {
         return name;
     }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;
import java.beans.XMLEncoder;
import java.io.Serializable;
public class XmlSerialization {
      public static void main(String[] args) { 
          Group group=new Group();      
            group.getGroup(0).setName("Andrey");
            group.getGroup(0).setSurname("Andrey");
            group.getGroup(0).setAge(20);
            group.setGroupName("34a");
        
    
     try (XMLEncoder out = new XMLEncoder(new FileOutputStream("Group.xml"))) 
       {      out.writeObject(group);
       out.flush();
       }
         
       catch (IOException e) 
     {   e.printStackTrace();    
        }
}
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
import java.beans.XMLDecoder; import java.io.*;
public class XmlDeserialization { 
    public static void main(String[] args) { 
        try (XMLDecoder xmlDecoder = new XMLDecoder(new FileInputStream("Group.xml"))) {
            Group group = (Group)xmlDecoder.readObject();     
            System.out.println(group.getGroupName()+ "\n"+ group.getGroup(0).getSurname() 
                    +" " +group.getGroup(0).getName()+" " +group.getGroup(0).getAge());   
            }   
        catch (IOException e) { 
            e.printStackTrace();    
            }     
        }
    }
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2015, 11:27
Ответы с готовыми решениями:

Создание объекта класса с полем являющимся объектом другого класса
Bill a; cin>>a;//тут я ввел с помощью перегруженного оператора ElementSpiska c; //поля у...

Перегрузка операции + с преобразованием объектов одного класса в объекты другого класса
Доброго времени суток! Изучаю ООП, при выполнении следующего задания возникли сложности: Создать...

Массив объектов одного класса как поле другого класса
Доброе время суток. Мне тут в универе задали лабу, нужно создать класс полем которого будет массив...

Возможно ли создать объект своего класса, который состоит из объектов другого класса?
Возможно ли создать объект своего класса, который состоит из объектов другого класса, например: ...

2
605 / 481 / 173
Регистрация: 02.03.2010
Сообщений: 1,197
27.11.2015, 13:17 2
Извиняюсь, не туда написал
0
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 11
01.12.2015, 00:16  [ТС] 3
Содержимое файла получается таким:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
 
-<java class="java.beans.XMLDecoder" version="1.8.0_60">
 
 
-<object class="Group">
 
 
-<void property="groupName">
 
<string>34a</string>
 
</void>
 
</object>
 
</java>
Подскажите кто-нибудь пожалуйста почему поле массив объектов не сериализуется?

Добавлено через 11 часов 38 минут
Спасибо, разобрался.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.12.2015, 00:16

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Поле класса содержит массив объектов другого класса
Добрый день. Есть класс Queue,который как поле содержит массив объектов на класс Pers. public...

Использование объектов одного класса в функциях другого класса
Нужно создать класс Комната и класс ДвериОкна, при этом программа должна добавлять объекты класса...

Массив объектов класса как член другого класса
Здравствуйте. У меня тут возникла проблемка #include &quot;main.h&quot; class player { public: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.