Как JAXB обрабатывает интерфейсы для marshall + jersey - PullRequest
2 голосов
/ 25 ноября 2011

Я пытаюсь маршалировать класс, который содержит тип списка интерфейса.JAXB жалуется, что он не может обрабатывать интерфейсы.

  class Myclass{

        private List<MyInterface> list = new ArrayList<MyInterface>();
        .... 

  }
  interface MyInterface{
          get();
  }

Как я могу аннотировать это так, чтобы jaxb мог маршалировать экземпляр класса MyClass?

1 Ответ

2 голосов
/ 25 ноября 2011

Вы можете использовать аннотацию @XmlElement для предоставления реализации JAXB конкретного класса, который вы хотите использовать для этого интерфейса.

class MyClass{

    @XmlElement(type=MyInterfaceImpl.class)
    private List<MyInterface> list = new ArrayList<MyInterface>();
    .... 

}

Для получения дополнительной информации

...