### Question:
JAXBDataBinding extends AbstractInterceptorProvidingDataBinding implements WrapperCapableDatabinding, InterceptorProvider { @SuppressWarnings("unchecked") public <T> DataReader<T> createReader(Class<T> c) { DataReader<T> dr = null; if (c == XMLStreamReader.class) { dr = (DataReader<T>)new DataReaderImpl<XMLStreamReader>(this, unwrapJAXBElement); } else if (c == XMLEventReader.class) { dr = (DataReader<T>)new DataReaderImpl<XMLEventReader>(this, unwrapJAXBElement); } else if (c == Node.class) { dr = (DataReader<T>)new DataReaderImpl<Node>(this, unwrapJAXBElement); } return dr; } JAXBDataBinding();  JAXBDataBinding(boolean q);  JAXBDataBinding(Class<?>... classes);  JAXBDataBinding(boolean qualified, Map<String, Object> props);  JAXBDataBinding(JAXBContext context); JAXBContext getContext(); final void setContext(JAXBContext ctx); Object getEscapeHandler(); void setEscapeHandler(Object handler); void applyEscapeHandler(boolean escape, Consumer<Object> consumer); @SuppressWarnings("unchecked") DataWriter<T> createWriter(Class<T> c); Class<?>[] getSupportedWriterFormats(); @SuppressWarnings("unchecked") DataReader<T> createReader(Class<T> c); Class<?>[] getSupportedReaderFormats(); @SuppressWarnings("unchecked") synchronized void initialize(Service service); void setExtraClass(Class<?>[] userExtraClass); Class<?>[] getExtraClass(); JAXBContext createJAXBContext(Set<Class<?>> classes); JAXBContext createJAXBContext(Set<Class<?>> classes, String defaultNs); CachedContextAndSchemas createJAXBContextAndSchemas(Set<Class<?>> classes,
                                                               String defaultNs); Set<Class<?>> getContextClasses(); Map<String, Object> getContextProperties(); void setContextProperties(Map<String, Object> contextProperties); List<XmlAdapter<?, ?>> getConfiguredXmlAdapters(); void setConfiguredXmlAdapters(List<XmlAdapter<?, ?>> adpters); Map<String, Object> getMarshallerProperties(); void setMarshallerProperties(Map<String, Object> marshallerProperties); Map<String, Object> getUnmarshallerProperties(); void setUnmarshallerProperties(Map<String, Object> unmarshallerProperties); Unmarshaller.Listener getUnmarshallerListener(); void setUnmarshallerListener(Unmarshaller.Listener unmarshallerListener); Marshaller.Listener getMarshallerListener(); void setMarshallerListener(Marshaller.Listener marshallerListener); ValidationEventHandler getValidationEventHandler(); void setValidationEventHandler(ValidationEventHandler validationEventHandler); boolean isUnwrapJAXBElement(); void setUnwrapJAXBElement(boolean unwrapJAXBElement); WrapperHelper createWrapperHelper(Class<?> wrapperType, QName wrapperName, List<String> partNames,
                                             List<String> elTypeNames, List<Class<?>> partClasses); static final String READER_VALIDATION_EVENT_HANDLER; static final String VALIDATION_EVENT_HANDLER; static final String SET_VALIDATION_EVENT_HANDLER; static final String WRITER_VALIDATION_EVENT_HANDLER; static final String SCHEMA_RESOURCE; static final String MTOM_THRESHOLD; static final String UNWRAP_JAXB_ELEMENT; static final String USE_JAXB_BRIDGE; static final String JAXB_SCAN_PACKAGES; }### Answer:
@Test public void testCreateReader() { DataReader<?> reader = jaxbDataBinding.createReader(XMLStreamReader.class); assertTrue(reader instanceof DataReaderImpl); reader = jaxbDataBinding.createReader(XMLEventReader.class); assertTrue(reader instanceof DataReaderImpl); reader = jaxbDataBinding.createReader(Node.class); assertTrue(reader instanceof DataReaderImpl); reader = jaxbDataBinding.createReader(null); assertNull(reader); }