@XmlSeeAlso alternative

У меня есть следующее:

class A{
    @XmlElement
    String name;

    //getters and setters
}

и

class B extends A{
    @XmlElement
    String height;

    //getters and setters
}

наконец у меня есть

@XmlRootElement
class P{
    @XmlElement
    List<A> things;

    //getters and setters
}

Если я делаю

List<A> l = new ArrayList<A>();
l.add(new B('hello', 20)) //Add new B with height of 20 and name hello

P p = new P();
p.setThings(l); //Set things to list of B's.

и маршалирую P, я получаю только поле как часть вещей, а не высоту.

Я знаю, что могу добавить @XmlSeeAlso(B.class) в A и все будет работать.

Но проблема в том, что я не знаю всех расширенных классов, кроме B, так как A может быть расширен во время выполнения.

Как динамически определить @XmlSeeAlso во время выполнения?

6
задан Ken Hirakawa 29 November 2011 в 21:51
поделиться