如何调用 SQLiteOpenHelper Class 在字符串中包含它的名称
How to Call a SQLiteOpenHelper Class Having it's name in a String
我的资产中有几个可读的数据库,具有相同的结构。用户将select一个数据库的名称,并将其SQliteOpenHelper
class的名称传入一个String。我用 Class.forname()
成功启动了 class 但我无法将 Class.getMethod("TableA", null)
转换为 Cursor
。当我只有 SQLiteOpenHelper Class
名字时,任何人都可以帮助我获取光标吗?
为所有 classes 创建一个公共基础 class(或接口),然后您可以直接将新对象转换为该类型并直接访问其成员。
好吧,我找到了解决我的问题的其他方法。如果您所有的数据库都具有相同的结构,例如相同的表但不同的数据。您可以只有一个 SQLiteOpenHelper class 并将数据库名称传递给 class 本身,而不是将其定义为 static final .请参阅下面的代码
public class MyDatabases extends SQLiteOpenHelper {
public ReadableDatabase (Context context, String Name) {super(context, Name, null, 1);}
}
我的资产中有几个可读的数据库,具有相同的结构。用户将select一个数据库的名称,并将其SQliteOpenHelper
class的名称传入一个String。我用 Class.forname()
成功启动了 class 但我无法将 Class.getMethod("TableA", null)
转换为 Cursor
。当我只有 SQLiteOpenHelper Class
名字时,任何人都可以帮助我获取光标吗?
为所有 classes 创建一个公共基础 class(或接口),然后您可以直接将新对象转换为该类型并直接访问其成员。
好吧,我找到了解决我的问题的其他方法。如果您所有的数据库都具有相同的结构,例如相同的表但不同的数据。您可以只有一个 SQLiteOpenHelper class 并将数据库名称传递给 class 本身,而不是将其定义为 static final .请参阅下面的代码
public class MyDatabases extends SQLiteOpenHelper {
public ReadableDatabase (Context context, String Name) {super(context, Name, null, 1);}
}