Сериализация объектов Xstream - PullRequest
0 голосов
/ 31 марта 2009

Учитывая класс как это:

public class Person {
  private String firstname;
  private String lastname;
  private PhoneNumber phone;
  private PhoneNumber fax;
  // ... constructors and methods
  private void calculate()
  {
  }
}

И Xstream объект, подобный этому:

XStream xstream = new XStream(new DomDriver()); 

Person joe = new Person("Joe", "Walnes");
joe.setPhone(new PhoneNumber(123, "1234-456"));
joe.setFax(new PhoneNumber(123, "9999-999"));

String xml = xstream.toXML(joe);

Полученный XML выглядит так:

<person>
  <firstname>Joe</firstname>
  <lastname>Walnes</lastname>
  <phone>
    <code>123</code>
    <number>1234-456</number>
  </phone>
  <fax>
    <code>123</code>
    <number>9999-999</number>
  </fax>
</person>

Десериализация объекта обратно из XML выглядит следующим образом:

Person newJoe = (Person)xstream.fromXML(xml);

После десериализации Person возможно ли выполнить метод newJoe.calculate ()?

Можно ли изменить значение числа, присутствующего в классе персонажа, на другое, например, newJoe.number = 4545;

Ответы [ 2 ]

1 голос
/ 31 марта 2009

Да, вы можете вызывать методы и изменять значения. Как и в любом другом случае, разница в том, что он получает значения из файла XML, а не вы явно передаете их конструктору.

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

0 голосов
/ 01 апреля 2009

Да.

И мне льстит упоминание в этом примере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...