如何解决抽象类“ DocumentBuilderFactory”如何允许实例化新实例
该方法是一个 抽象工厂方法
,它返回一个 子类 的DocumentBuilder
,它是一种(混凝土)执行。
知道对象的确切类别并不重要,您只需要知道它是一个即可DocumentBuilder
。该方法可以返回在运行时决定的实例,或者在其认为合适时预定的实例。
如果您想知道,可以打印出实际的类,如下所示:
System.out.println(dbf.getClass());
请注意,该方法newInstance()
不要与的相同名称的方法混淆Class
,即,这两者是不同的:
// a static method of this class
DocumentBuilderFactory.newInstance();
// an instance method of Class
DocumentBuilderFactory.class.newInstance();
不幸的名字选择肯定会引起混乱。
解决方法
最近,我一直在使用XML解析器。这对我来说仅仅是个开始,我设法了解了如何在Java即使用DOM解析器类,DocumentBuilderFactory
以及DocumentBuilder
如何解析XML文档。
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
我想问自己的是如何允许抽象类(例如DocumentBuilderFactory
和)DocumentBuilder
实例化新实例?然后在另一个示例中,我看到:
Calendar calendar = Calendar.getInstance();
System.out.println(calendar.get(Calendar.DATE));
- 据我所知,您不能为抽象类和接口类实例化(换句话说,创建一个对象)。我对么?
- 难道
getInstance()
和newInstancce()
方法创建上面的抽象类的实例?
我是否缺少使用抽象类及其新对象的内容?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。