gpt4 book ai didi

java - 为什么需要在每个 Fragment 中都有一个公共(public)的空构造函数?

转载 作者:行者123 更新时间:2023-11-30 11:18:33 25 4
gpt4 key购买 nike

最近我在 fragment docs 中看到了声明:

All subclasses of Fragment must include a public no-argument constructor. The framework will often re-instantiate a fragment class when needed, in particular during state restore, and needs to be able to find this constructor to instantiate it. If the no-argument constructor is not available, a runtime exception will occur in some cases during state restore.

在这方面,我已经阅读了以下帖子:

1. Explicitly writing default empty constructor .

2. Default constructors and inheritance in Java .

3. Java entity - why do I need an empty constructor? .

4. Do fragments really need an empty constructor? .

如果我没记错的话,Java 在没有定义构造函数时会自动提供一个默认的空构造函数(Fragment 就是这种情况),那么我们为什么还要定义一个呢?这有什么用?如果我们不在 Fragment 中定义默认构造函数,会有什么不同?

最佳答案

Java automatically provides a default empty constructor when no constructor is defined (as is the case with Fragments)

是的,但如果你有一个参数构造函数,那么它就没有。

但在 fragment 的情况下,FragmentManagerImpl 在进程死亡(低内存条件)后使用默认构造函数重新创建反射,因此您将提供而不是使用参数包的任何参数都将被取消。

关于java - 为什么需要在每个 Fragment 中都有一个公共(public)的空构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23808019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com