gpt4 book ai didi

Java-类

转载 作者:行者123 更新时间:2023-12-02 11:58:02 27 4
gpt4 key购买 nike

我想在下面的 jackson 反序列化中添加多个类。但我该怎么做呢?下面是示例代码。

XmlMapper mapper = new XmlMapper();
JaxbAnnotationModule module = new JaxbAnnotationModule();
mapper.registerModule(module);
AnnotationIntrospector introspector = new JaxbAnnotationIntrospector(mapper.getTypeFactory());
mapper.setAnnotationIntrospector(introspector);
TypeFactory typeFactory = mapper.getTypeFactory();
Class<? extends Collection> list;
MapType mapType = typeFactory.constructRawCollectionType(list);
File is = new File("myXMLFile.xml");
ArtworkContentMessageType je = mapper.readValue(is,mapType);

下面的部分让我感到困惑。如何将类(class)添加到列表中?

Class<? extends Collection> list;
MapType mapType = typeFactory.constructRawCollectionType(list);

如何添加多个类(例如:Body.class 和 P.class)。我在下面尝试,它不是正确的对象,因为它不是类类型。

List<Class> clazz = new ArrayList<>();
clazz.add(ArtworkContentMessageType.class);
clazz.add(Body.class);
clazz.add(P.class);
MapType mapType = typeFactory.constructRawCollectionType(clazz);

最佳答案

java.lang.Class是一个泛型类,这意味着它可以接受参数,按照以下语法:

Class<T>

其中 T 是 Class 对象建模的类的类型。以与文档中相同的示例为例, String.class 的类型是 Class<String> .

因此,通过使用 wildcard syntax ,您可以声明 Class 的实例不知道其类型:Class<?>

如果您不知道类型,但知道它将扩展给定的类,则可以使用以下语法:Class<? extends Superclass> .

所以这个语法:

Class<? extends Collection> list;

声明一个类,其类型是 Collection 的子类.

关于Java-类<?延伸 Collection >,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47459073/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com