微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

抽象类“ DocumentBuilderFactory”如何允许实例化新实例

如何解决抽象类“ 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));
  1. 据我所知,您不能为抽象类和接口类实例化(换句话说,创建一个对象)。我对么?
  2. 难道getInstance()newInstancce()方法创建上面的抽象类的实例?

我是否缺少使用抽象类及其新对象的内容?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。