Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java forName以类型返回值_Java_Reflection - Fatal编程技术网

Java forName以类型返回值

Java forName以类型返回值,java,reflection,Java,Reflection,我可以使用Class.forName返回的类值作为类型吗 e、 g String hdrClassName=“generated.MessageHeader”; 类msgHdrClass=Class.forName(hdrClassName); JAXBElement jaxbWrapperElement1=(JAXBElement)jaxbUnmarshaller.unmarshal(新文件(“./src/MessageHeader.xml”); 如果没有,是否有一种方法可以实现“使用在运行

我可以使用Class.forName返回的类值作为类型吗

e、 g

String hdrClassName=“generated.MessageHeader”;
类msgHdrClass=Class.forName(hdrClassName);
JAXBElement jaxbWrapperElement1=(JAXBElement)jaxbUnmarshaller.unmarshal(新文件(“./src/MessageHeader.xml”);

如果没有,是否有一种方法可以实现“使用在运行时传递的类名作为java中的类型”

这有什么意义?Java中的泛型支持更复杂的高阶编译时类型系统。泛型类型仅在编译时存在,并且只有在编译时知道类型时才有用。如果您知道您的msgHdrClass总是扩展一个特定的类或接口,那么您可以使用像
jaxementsee:@ErwinBolwidt这样的结构,您应该将其作为答案发布。
String hdrClassName = "generated.MessageHeader";
Class msgHdrClass= Class.forName(hdrClassName);
JAXBElement<msgHdrClass> jaxbWrapperElement1 = (JAXBElement<msgHadrClass>)jaxbUnmarshaller.unmarshal(new File("./src/MessageHeader.xml"));