DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); //
DocumentBuilderFactory是抽象类。 newInstance是静态方法。无法弄清楚它是如何工作的。 会发生什么?通过自己的静态方法实例化抽象类
我的意思是为什么它的工作原理......如果我没有弄错,我们不能做抽象类的实例。
DocumentBuilderFactory f = DocumentBuilderFactory.newInstance(); //
DocumentBuilderFactory是抽象类。 newInstance是静态方法。无法弄清楚它是如何工作的。 会发生什么?通过自己的静态方法实例化抽象类
我的意思是为什么它的工作原理......如果我没有弄错,我们不能做抽象类的实例。
您在“=”的右侧没有DocumentBuilderFactory的对象。
这是在构造函数外部创建DocumentBuilderFactory
的工厂方法。
这看起来像某种单例模式,newInstance方法返回EXACT相同类型,还是返回一个扩展DocumentBuilderfactory的实际具体类?它真的是抽象的,还是它有一个私人的构造函数?
DocumentBuilderFactory.newInstance()
返回DocumentBuilderFactory的具体子类的实例。你可以阅读它的源文件here。
newInstance是一个静态方法,不是构造函数,因此可以自由创建DocumentBuilderFactory的具体子类型的实例。它做什么。我不知道实现,但我认为它实例化了这个类的默认实现。
Java? 会发生什么?您错过了提供一些背景信息和错误信息。 –
其实它工作。我不明白为什么这个表达能起作用。 –
相关:http://www.javapractices.com/topic/TopicAction.do?Id=21和http://en.wikipedia.org/wiki/Abstract_factory_pattern –