Предположим, у меня есть простой Java-класс, подобный этому:
public class User {
String firstName;
String lastName;
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
}
Теперь, предположим, я хочу проанализировать следующий XML:
<user>
<firstName>Homer</firstName>
<lastName>Simpson</lastName>
</user>
Я могу сделать это без проблем вXStream примерно так:
User homer = (User) xstream.fromXML(xml);
Хорошо, пока все хорошо, но вот моя проблема.
Предположим, у меня есть следующий XML, который я хочу проанализировать:
<user>
<fullName>Homer Simpson</fullName>
</user>
Как я могу преобразовать этот XML в тот же Пользовательский объект, используя XStream?
Мне нужен способ реализовать какой-нибудь обратный вызов, чтобы, когда XStream анализировал поле fullName, я мог разделить строку на две части и вручную установить поля имени и фамилии в пользовательском объекте.Возможно ли это?
Обратите внимание, что я не спрашиваю, как разбить строку на две части (это самая простая часть), я хочу знать, как перехватить синтаксический анализ XML, чтобы XStream не пытался отражательно установитьполе fullName объекта User (которого, очевидно, не существует).
Я посмотрел на преобразователи, которые предоставляет XStream, но не смог понять, как его использовать для этой цели.
Любая помощь будет оценена.