如何调用 SQLiteOpenHelper Class 在字符串中包含它的名称

How to Call a SQLiteOpenHelper Class Having it's name in a String

我的资产中有几个可读的数据库,具有相同的结构。用户将select一个数据库的名称,并将其SQliteOpenHelperclass的名称传入一个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);}
}