为什么在koltin中使用“ newInstance()”代替关键字“ new”来创建xmlPullParserFactory?

时间:2019-06-26 21:34:26

标签: android kotlin

为什么我应该使用newInstance()而不是new关键字来创建XmlPullParserFactory 以及为什么要创建XmlPullParserFactory,我知道当您要创建多个子类并且不知道哪个子类直到运行时才使用工厂模式,所以我们使用工厂类来处理它

val factory = XmlPullParserFactory.newInstance()
factory.isNamespaceAware = true
val xpp = factory.newPullParser()

2 个答案:

答案 0 :(得分:0)

这是设计决定。看implementation of XMLPullParserFactory,现在并没有什么大不了,但是如果实现发生任何变化,您的代码可能会停止工作并产生奇怪的副作用。

由于构造函数受到保护,因此您无论如何都不能使用new关键字。

希望这可以清除一切

答案 1 :(得分:0)

Kotlin中没有new关键字。

newInstance函数只是类XmlPullParserFactory上的静态方法,用于创建XmlPullParser的实例,大概是根据以下情况选择正确的具体类型XmlPullParser:您提供给XmlPullParserFactory的某些配置。