В последние пару дней я использовал Castor , чтобы попытаться сделать сериализацию между моей Java-программой и XML понятной.Хотя в Castor есть несколько недостатков, автоматическая генерация xml с помощью отражения на самом деле очень функциональна.К сожалению, одна вещь, которая, кажется, довольно хорошо исключена из примеров, касается дженериков.Кажется, что API отражения делает замечательную работу в том виде, в каком он есть, но поскольку он непреднамеренно захватывает много избыточных данных только потому, что методы начинаются с get___()
, я хотел написать свой собственный файл отображения, чтобы предотвратить это.
Во-первых, совершенно справедливо, что в атрибутах элемента "field
" нужно определить "type
".Однако в нем не указано, что следует делать, если этот тип является абстрактным или просто интерфейсом.Что же тогда следует указывать в качестве типа?
Во-вторых, большинству объектов типа «коллекция», указанных в Castor (List
, Vector
, Collection
, Set
и т. Д.), Требуется только 1 универсальный типпоэтому достаточно указать "type
" как внутри и "collection="true"
".Тем не менее, он не определяет, что я должен делать в случае коллекции, такой как Map
, где необходимо 2 типа.Как я могу указать тип ключа и тип значения?
Любая помощь будет принята с благодарностью!