可以实例化Java抽象类TransformerFactory吗?

时间:2019-09-01 10:15:30

标签: java abstract-class

据我所知,Java抽象类无法实例化。但是,TransformFactory(抽象类)具有以下方法:

newInstance() 获取TransformerFactory.的新实例,文档中提供了有关JAXP和Properties的更多详细信息。有人可以对此提供更清晰的解释吗?。

2 个答案:

答案 0 :(得分:1)

没有直接实例化抽象类。实例化一个具体的子类,例如SAXTransformerFactory(部分由抽象类组成),然后返回该对象。

您可以从method documentation中分辨出来:

  

此方法使用以下有序查找过程来确定要加载的TransformerFactory实现类...

注意“实现类” ...

答案 1 :(得分:1)

  

请问对此有更清晰的解释吗?

可以。 newInstance()方法将返回TransformerFactory subclass 的实例。

您引用的Javadoc句子中的操作词是“ a”词。

  

获取>> a << {TransformerFactory的新实例。

这个小词“ a”表示它不是 the TransformerFactory类(这显然是不可能的!),而是某些子类。其余的Javadoc解释了newInstance如何决定实例化并返回哪个子类。


我接受这种对“ a”的使用非常微妙,它们可以使描述更加明确。但是,我认为Javadoc作者倾向于使用一个不太“冗长”的描述。