#java #xml #jaxb
#java #xml #jaxb
Вопрос:
Я сгенерировал классы из своего XML .xsd и пытаюсь установить поле EndpointID
внутри класса MeterSessionInputRF
. Проблема, с которой я сталкиваюсь, заключается в том, что setEndpointID
метод принимает только JAXBElement<Byte>
в качестве своего параметра.
В настоящее время я запрашиваю базу данных, чтобы получить входные данные для setEndpointID
метода. Этот ввод может быть строкой, символом, каким бы я ни хотел, чтобы это было.
Как мне создать JAXBElement<Byte>
? Я пытался использовать класс ObjectFactory, но когда я пытаюсь его использовать, у меня нет возможности создать такой объект.
Вот код, который я уже должен дать некоторую перспективу.
if(moduleResults.next()){
MeterSessionInputRF msiRF = new MeterSessionInputRF();
msiRF.setRFFrequency(moduleResults.getFloat("id_amr_module"));
JAXBElement<Byte> endpointType;
byte epT = moduleResults.getByte("cd_module_typ");
endpointType.setValue(epT);
msiRF.setEndpointType(endpointType);
}
Я продолжаю получать сообщение об ошибке, что endpointType, возможно, не был инициализирован. Есть ли правильный способ создать JAXBElement<Byte>
?
Комментарии:
1. Спасибо. Это было под createMeterSessionInputRFEndpointType . Так трудно найти!
Ответ №1:
ObjectFactory
Класс, созданный XJC, должен иметь метод, позволяющий сделать это за вас. Я знаю, вы сказали, что его там нет, но проверьте еще раз, должен быть какой-то метод, который возвращает объект этого типа.