Я использую API msgparser 1.1.15.
При разборе MSG я получаю MSG в качестве вложения. Я хочу сохранить это MSG-вложение в виде файла, но у объекта MsgAttachment нет метода для возврата данных в виде byte [].
Итак, я пытаюсь преобразовать объект в поток вывода байтового массива, а затем пытаюсь записать в файл. Даже в этом случае MsgAttachment возвращает объект Message, который не реализует интерфейс Serializable, что приводит к исключению NotSerializableException.
Я получаю вложение .msg, как показано ниже (псевдокод):
if(attachment instanceof MsgAttachment){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
MsgAttachment msgAttachment = (MsgAttachment) attachment;
Message message = msgAttachment.getMessage();
oos.writeObject(message);
oos.flush();
oos.close();
InputStream in = new ByteArrayInputStream(baos.toByteArray());
}
Я получаю NotSerializableException
в этой строке oos.writeObject(message);
, потому что com.auxilii.msgparser.Message не реализует интерфейс Serializable, и его нельзя изменить, потому что это класс библиотеки.
Я исследовал и нашел эту опцию, чтобы попытаться решить. Msgstr "Создать класс-оболочку, расширяющий Message и реализующий Serializable, затем самостоятельно реализовать writeObject (...) и readObject (...)."
Вопрос в том, что я реализую в методах writeObject и readObject? Стоит ли сериализовать каждое свойство в объекте Message или есть более простой способ?
Кроме того, есть ли лучший способ решить основную проблему?
Спасибо за чтение и высоко ценим вашу помощь.