【问题标题】:Attribute initialized in onCreate()在 onCreate() 中初始化的属性
【发布时间】:2017-08-28 16:54:53
【问题描述】:

我使用属性 int a 创建了我的类(扩展 Activity)。
该属性在 onCreate() 方法中自动初始化为 0。

正常吗?

【问题讨论】:

  • 如果你没有给int属性赋值,默认情况下它在构造时初始化为0。 Activity 的生命周期方法onCreate(...) 稍后会被调用,所以如果你没有在onCreate(...) 中赋值,则使用默认值。

标签: android oncreate


【解决方案1】:

这是正常的。你看,“int”是一个原始类型。它不是一个对象,因此它不能保存一个“空”值。如果您希望您的变量在 onCreate() 时为 null,则必须将其类型更改为它的 Object 表示形式。 “Integer”类表示原始类型“int”。

【讨论】:

    【解决方案2】:

    来自官方 Java 教程:

    已声明但未初始化的字段将设置为 编译器的合理默认值。

    检查每种数据类型的默认值:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

    【讨论】:

      【解决方案3】:

      在 onCreate() 方法中。

      不,它没有在 onCreate() 中初始化。它在您的类的对象被实例化时被初始化。

      0

      是的。 int 的变量是原始类型,只能保存数值,除非你以其他方式初始化它,否则它将被分配 0(与 Integer 相反,它也可以是 null)。

      查看文档:

      https://docs.oracle.com/javase/tutorial/java/javaOO/index.html https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

      【讨论】:

        猜你喜欢
        • 2019-02-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-13
        相关资源
        最近更新 更多