首页 > 解决方案 > java - 使用字符串进行动态转换

问题描述

DRINK考虑一个带有列的 sqlite 数据库表: Name(String)、Description(String)、ResourceID(int)。

现在,在Cursor cur每次我想从特定行中获取某些内容之后,我必须执行以下操作:

cur = db.query(...);
String name = cur.getString(0);
String desc = cur.getString(1);
int desc = cur.getInt(0);

但是,这个逻辑非常依赖于我对数据库表模式的了解,我想避免这一点。我想做的是这样的:

Object x = cur.getObject(0); //not available

但是,正如标记的getObject那样,游标不可用

但是,我还要求在执行此操作时也保留数据类型,这意味着1存储integer在其ResourceID列中的 a 不给出1 instanceOf String=true,它应该给出1 instanceOf int=true

那么,我为什么要这样做呢?如果我能做到这一点,那么我可以通过类似 for 循环的方式从数据库中获取值,而不必担心模式中的内容并只提供它的长度。

有什么方法可以实现或至少实现类似的行为。

标签: javaandroidcursor

解决方案


CallgetType()然后使用一个switch语句来调用相应的getXxx()方法。


推荐阅读