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

 一诺千金2502859287 发布于 2023-02-12 15:27

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

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

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

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

在此输入图像描述

1 个回答
  • final变量只能初始化一次.通常,它们必须在构造函数中初始化,但如果它们是static,则需要在定义它们时进行初始化,如下所示:

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

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

    private static SQLiteDatabase database;
    

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

    2023-02-12 15:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有