Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 具有数据库名称参数的构造函数_Java_Android - Fatal编程技术网

Java 具有数据库名称参数的构造函数

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

我想为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;
    }
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");