2016-01-27 13 views
1

При маршалинге классов с наследованием сохраняются только данные большинства классов для детей.Наложение наложения с помощью XStream

Например, с кодом:

public class Test { 

    static class Person { 
     String name; 
    } 

    static class Employee extends Person { 
     String job; 
    } 

    public static void main(String[] args) { 
     Employee me = new Employee(); 
     me.name = "Sam"; 
     me.job = "Developer"; 
     XStream xStream = new XStream(); 
     xStream.alias("employee", Employee.class); 
     String xml = xStream.toXML(me); 
     System.out.println(xml); 
    } 
} 

Мой выход выглядит следующим образом:

<employee> 
    <job>Developer</job> 
</employee> 

Как я могу получить XStream для вывода данных родительского класса?

ответ

1

Вам просто нужно переключиться на более новую версию XStream. Я провел ваш код с 1.2.2 и получил следующий результат:

<employee> 
    <job>Developer</job> 
    <name>Sam</name> 
</employee> 
+1

Это было немного смущает. Версия, которую я использую, - 1.4.4, которая не работает. Я попытался вернуться к 1.2.2, и это сработало, как вы сказали. Я добавил последнюю версию 1.4, которую я смог найти (1.4.8), и она сработала. – samblake