java - 使用字符串进行动态转换

标签 java android cursor

考虑一个 sqlite 数据库表 DRINK,其中包含以下列:Name(字符串)、Description(字符串)、ResourceID(整数)。

现在,每次我想从特定行中获取某些内容时,我都会得到一个 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 在其 ResourceID 列中存储为 integer ,不给出 1 instanceOf String=true,它应该给出 1 instanceOf int=true

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

有哪些方法可以实现这一点,或者至少实现类似的行为。

最佳答案

调用getType()然后使用 switch 语句调用适当的 getXxx() 方法。

关于java - 使用字符串进行动态转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61160205/

相关文章:

java - Akka Actor 生命周期

android - 如何在抽屉导航内创建​​可扩展的 listView?

java - 纬度和经度为空

java - 发送字符串至 OBDII

wpf - 当 darg 源在我的应用程序之外时如何覆盖默认的拖放光标

javascript - 如何在 anchor 标记悬停时添加类

java - 从Camel文件组件开始

Java OpenGL - 透明背景可以看到下面的面板层吗?

java - JedisPool 无法连接到 telnet redis 服务器

javascript - 如何找到光标所在的单词