gpt4 book ai didi

java - 检查最终实例变量是否已初始化

转载 作者:行者123 更新时间:2023-12-01 22:43:32 24 4
gpt4 key购买 nike

我仍在学习 Java,但我不确定为什么这会导致编译时错误:

public class AnswerRepository implements IAnswerRepository
{
private final static SQLiteDatabase database;

public AnswerRepository(Activity activity)
{
if(database != null)
{
database = DbOpenHelper.getInstance(activity);
}
}
}

我只是想在为其赋值之前检查是否已先分配最终变量。但编译时检查似乎不喜欢它。这是为什么?

enter image description here

最佳答案

final 变量只能初始化一次。通常,它们必须在构造函数中初始化,但如果它们是静态,则需要在定义时对其进行初始化,如下所示:

private final static SQLiteDatabase database = new SQLiteDatabase(...);

或者,您可以稍后初始化它:

private static SQLiteDatabase database;

static 变量将在调用对象构造函数之前初始化。因此,在这种情况下,database 将始终为 null,并且由于它是 null,因此在对象构造函数中重新初始化它会导致编译时间错误。

关于java - 检查最终实例变量是否已初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415878/

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