jaxbintrospector.java

来自「Xfire文件 用于开发web service 的一个开源工具 很好用的」· Java 代码 · 共 42 行

JAVA
42
字号
package org.codehaus.xfire.jaxb;import com.sun.xml.bind.RIElement;import org.codehaus.xfire.XFireRuntimeException;import javax.xml.bind.JAXBContext;import javax.xml.namespace.QName;import java.lang.reflect.Method;public class JaxbIntrospector{    private JAXBContext jaxbContext;    public JaxbIntrospector(JAXBContext jaxbContext)    {        this.jaxbContext = jaxbContext;    }    public QName introspect(Class clazz)    {        String typeName = clazz.getName();        typeName = typeName.substring(typeName.lastIndexOf('.') + 1);        Method creator;        // we need to create an instance of the jaxb bean to find out the qname        RIElement instance;        try        {            // use reflection to call create<TypeName>            creator = jaxbContext.getClass().getMethod("create" + typeName, null);            instance = (RIElement) creator.invoke(jaxbContext, null);        }        catch (Exception e)        {            throw new XFireRuntimeException("error getting qname of jaxb type", e);        }        return new QName(instance.____jaxb_ri____getNamespaceURI(),                          instance.____jaxb_ri____getLocalName());    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?