ПРОБЛЕМА
Если я сгенерирую объект jaxb из корневого элемента XML с именем «Message», он создаст следующий класс:
@XmlRootElement(name = "Message")
public class Message{
...
}
У меня есть методсо следующим определением:
public void doSomething(Object rootElement) {
...
}
Этот метод является частью структуры, используемой более 30 разработчиками.Метод принимает только класс с аннотацией @XmlRootElement.Разработчики иногда пропускают этот важный javadoc и передают объект, отличный от @XmlRootElement, методу, выдающему ошибки во время выполнения.Поскольку сгенерированный класс не имеет суперкласса, интерфейсов и т. Д., Я должен принять объект в качестве аргумента.
ВОПРОС
Разве невозможно выполнить эту проверку во время компиляции??
УЖЕ ПРОВЕРЕНО
Я изучил (через файл привязки jaxb), что сгенерированные классы могут реализовать интерфейс, а затем принять этот интерфейс в качестве аргумента, однако он не может (вприменяется только к классу корневых элементов.
У нас есть несколько сотен различных файлов XML-схем, из которых мы сгенерировали в автоматическом режиме.