为什么我应该使用newInstance()而不是new关键字来创建XmlPullParserFactory 以及为什么要创建XmlPullParserFactory,我知道当您要创建多个子类并且不知道哪个子类直到运行时才使用工厂模式,所以我们使用工厂类来处理它
val factory = XmlPullParserFactory.newInstance()
factory.isNamespaceAware = true
val xpp = factory.newPullParser()
答案 0 :(得分:0)
这是设计决定。看implementation of XMLPullParserFactory,现在并没有什么大不了,但是如果实现发生任何变化,您的代码可能会停止工作并产生奇怪的副作用。
由于构造函数受到保护,因此您无论如何都不能使用new关键字。
希望这可以清除一切
答案 1 :(得分:0)
Kotlin中没有new
关键字。
newInstance
函数只是类XmlPullParserFactory
上的静态方法,用于创建XmlPullParser
的实例,大概是根据以下情况选择正确的具体类型XmlPullParser
:您提供给XmlPullParserFactory
的某些配置。