我有几个复杂的数据结构,如
Map< A, Set< B > >
Set< Map< A, B > >
Set< Map< A, Set< B > > >
Map< A, Map< B, Set< C > > >
and so on (more complex data structures)
Run Code Online (Sandbox Code Playgroud)
注意:在我的情况下,如果我使用Set或List并不重要.
现在我知道JAXB允许我定义XmlAdapter,这没关系,但我不想为每个给定的数据结构定义一个XmlAdapter(它只是太多的复制和粘贴代码).
我试图通过声明两个泛化XmlAdapter来实现我的目标:
MapAdapter<K,V>SetAdapter<V>问题:
JAXB抱怨如下:
javax.xml.bind.JAXBException:
class java.util.Collections$UnmodifiableMap nor any of its
super class is known to this context.
Run Code Online (Sandbox Code Playgroud)
这是我的适配器类:
import java.util.*;
import javax.xml.bind.annotation.*;
import javax.xml.bind.annotation.adapters.*;
public class Adapters {
public final static class MapAdapter<K, V> …Run Code Online (Sandbox Code Playgroud)