Get “Class” object from generic type T

后端 未结 6 1786

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

6条回答
  •  盖世英雄少女心
    2021-02-19 17:10

    Pass the class object instead and it's easy.

    public  T readXmlToObject(String xmlFileName, Class  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.

提交回复
热议问题