Альтернатива для toString () в Java - PullRequest
0 голосов
/ 25 января 2012

То, что у меня есть, это некоммерческий Java-объект из XML. Части этого неупорядоченного объекта отправляются в различные классы для обработки. Мне нужно записать содержимое неупорядоченного объекта. Я могу легко переопределить метод toString(), но проблема в том, что в этом случае классы создаются во время сборки с использованием xjc, и я не могу переопределить toString () в этих классах, поскольку они будут удалены при повторной генерации.

Я ищу другую альтернативу для печати содержимого. Любая идея?

Ответы [ 4 ]

2 голосов
/ 25 января 2012

Вы можете использовать плагин xjc для генерации желаемой строки.

1 голос
/ 25 января 2012

Не используйте toString() для сортировки. Это не то, для чего он предназначен. (Обратитесь к javadocs для java.lang.Object, чтобы узнать, для чего предназначен этот метод .)

Даже если вы решили применить маршалинг / демаршаллинг вручную, вам не следует пытаться использовать toString() для этой цели.

0 голосов
/ 26 января 2012

Напишите вспомогательный класс, который принимает не маршалируемый Java-объект и выдает его строковое представление с использованием отражения. Если вы не хотите использовать рефлексию, поскольку вы знаете свое xsd и не маршалируемое содержимое, вы можете жестко их кодировать.

0 голосов
/ 25 января 2012

Вы можете написать служебный класс, который использует отражение для проверки объекта и либо вернуть его строковое представление (в любом формате, который вам нужен), либо сделать так, чтобы он непосредственно записывал строковое представление.

...