Get "Class" object from generic type T
generics, java
Solution
Pass the class object instead and it's easy.
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 );
}
The idea here is that since you can't extract the type parameter from the object, you have to do it the other way around: start with the class and then manipulate the object to match the type parameter.
Problem
I want to make generic function that return Object representation of XML document (using JAXB). I need to pass "class" object to JAXBContext constructor, but how I can get it from T? ``` public <T> readXmlToObject(String xmlFileName, T jaxbClass) { JAXBContext context = JAXBContext.newInstance(T.class); // T.class - here error, how to get it? ....... } ```