gpt4 book ai didi

java - 从通用类型 T 获取 "Class"对象

转载 作者:搜寻专家 更新时间:2023-10-30 21:17:24 26 4
gpt4 key购买 nike

我想创建返回 XML 文档的对象表示的通用函数(使用 JAXB)。我需要将“类”对象传递给 JAXBContext 构造函数,但如何从 T 获取它?

public <T> readXmlToObject(String xmlFileName, T  jaxbClass) {
JAXBContext context = JAXBContext.newInstance(T.class); // T.class - here error, how to get it?
.......
}

最佳答案

改为传递类对象,这很简单。

public <T> T readXmlToObject(String xmlFileName, Class<T>  jaxbClass) {
JAXBContext context = JAXBContext.newInstance( jaxbClass ); // T.class - here error, how to get it?
Object o = context.createUnmarshaller().unmarshal( new File( xmlFileName ) );
return jaxbClass.cast( o );
}

这里的想法是,既然你不能从对象中提取类型参数,你必须反过来做:从类开始,然后操作对象以匹配类型参数。

关于java - 从通用类型 T 获取 "Class"对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10800463/

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