当Fragment.instantiate优于MyFragment.newInstance或新的MyFragment()

我是代码审查其他人的ViewPager的实施。 他有一个属于每个视图的片段类的数组。 里面getItem(诠释我)他会写MyFragment.newInstance(),我认为没有问题。 但是,查看谷歌文档的ViewPager,他们在他们的例子中使用Fragment.instantiate。 除了类信息的设置方式之外,是否有使用实例化而不是调用newInstance(arg)或空构造函数的devise优点?

链接: Fragment.instantiate

Solutions Collecting From Web of "当Fragment.instantiate优于MyFragment.newInstance或新的MyFragment()"

instantiate()允许你通过名称指定一个片段,而不需要编译时静态类的parsing。

当片段名称来自某个运行时源(例如二进制XML)时,这非常有用:

 <fragment class="com.example.FragmentClass" ... 

这是框架如何实例化在布局XML中指定的片段。

在代码中,最好使用newInstance()或空构造函数来获得编译时静态types检查。

代码instantiate()在引擎下的做法与使用newInstance() /空构造函数实例化时发生的情况并没有太大的区别,所以不太可能在性能上有显着差异。