首先,我的问题是相对于那个:Calling method on Document interface in Java
但我想问更多。
例如,据我所知,"某人"编写了一个实现Document接口的类,并使用DocumentBuilder.parse方法返回一些内容。那么,问题1:返回什么?对类/对象的引用?对类' /对象接口的引用?这是怎么做到的?因为返回的类型是" Document"界面,如何调用它的方法?
另外,(问题2)因为DocumentBuilder返回一个接口,如何扩展从DocumentBuilder.parse方法返回对象的类,以实现Document接口的扩展?
答案 0 :(得分:0)
您可以检查解析方法返回的类型(类):
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
DocumentBuilder db = f.newDocumentBuilder();
Document doc = db.parse(...);
System.out.println(doc.getClass().getName());
如果你只使用JDK,你很可能会看到:
com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl
此类实现Document
接口,因此您可以在该实例上调用该接口的所有方法。
至于第二个问题,您必须创建自己的DocumentBuilderFactory
以及所有其他所需接口和类的实现。您可能能够重用和扩展现有的实现类组,但这实际上取决于这些类的设计。