为什么数据库名称和版本必须是静态的?

Why database name and version must be static?

好的,这是同样的问题why database name must be static? 但我已经知道为什么我们应该声明 database name static & final.

并且我尝试将非静态数据库名称提供给 SQLiteOpenHelper 的构造函数,但最终出现错误 the field can't be quoted from the static context

我想 know/find 决定将这些(数据库和版本)设为静态的源代码或特定行。

我已经看过 https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/database/sqlite/SQLiteOpenHelper.java 但没找到。

这是关于 Java,而不是关于 Android sqlite。

初始化对象实例时,在初始化成员字段之前调用构造函数。数据库名称是构造函数参数,需要在调用构造函数时进行初始化。当它是静态的时,它不是一个实例成员,而是一个 class 成员,它在 class 第一次被访问时被初始化。

Java order of Initialization and Instantiation