java - 具有数据库名称参数的构造函数
问题描述
我想为 DatabaseOpenHelper 创建构造函数,它接受数据库名称的参数。我试着做这样的事情:
public DatabaseOpenHelper(Context context, String DB_NAME){
this.DB_NAME = DB_NAME; //There is error
super(context, DB_NAME, null, 1);
APP_DATA_PATH = context.getApplicationInfo().dataDir;
this.context = context;
}
但是我遇到了错误,因为super(context, DB_NAME, null, 1);
必须在之前this.DB_NAME = DB_NAME;
所以有什么方法可以创建构造函数,我可以在其中指定要在对象中打开的数据库?
解决方案
你可以这样写:
public DatabaseOpenHelper(Context context, String DB_NAME){
super(context, DB_NAME, null, 1);
this.DB_NAME = DB_NAME;
APP_DATA_PATH = context.getApplicationInfo().dataDir;
this.context = context;
}
因为最终,您将相同的DB_NAME
变量传递给超级构造函数,而不管您将它放在构造函数中的什么位置。
您只需要使用所需的名称调用构造函数:
new DatabaseOpenHelper(this,"mydb1");
new DatabaseOpenHelper(this,"mydb2");
推荐阅读
- ios - BLE 背景扫描无法快速运行
- python - 使用 Alpha 透明度粘贴图像
- c# - 如何将字典反序列化为 Xamarin Forms 中的对象
- javascript - 使用 Babel 使用 codeKit 编译后未定义 regeneratorRuntime
- python - 如何更换班级?
- python - OpenCV VideoCapture 无法从流中读取
- python-2.7 - 如何比较两个 JSON 文件并形成新的自定义 JSON
- sql-server - 在 VCores 环境中启用 MEMORY_OPTIMIZED 表
- node.js - 我应该如何在 Google App Engine 中构建 API 和前端应用程序?
- php - 在收到请求时在 Yii2 中的 $_POST 中设置值?