Java 具有数据库名称参数的构造函数
我想为DatabaseOpenHelper创建构造函数,它以参数作为数据库名称。我试过这样做:Java 具有数据库名称参数的构造函数,java,android,Java,Android,我想为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.getApplicationI
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;
}
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;
}
但是我得到了错误,因为super(context,DB_NAME,null,1)
必须在this.DB\u NAME=DB\u NAME之前代码>
那么,有没有办法创建constructor,在这里我可以指定要在object中打开的数据库?您可以这样编写:
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;
}
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");