java - 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 循环的方式从数据库中获取值,而不必担心模式中的内容并只提供它的长度。
有什么方法可以实现或至少实现类似的行为。
解决方案
CallgetType()
然后使用一个switch
语句来调用相应的getXxx()
方法。
推荐阅读
- serialization - utf-8 编码是否需要字符长度?
- javascript - 加载在 SSL 网站上的 iframe 上发出请求的非 SSL 动态页面(jps)?
- javascript - Webpack 在开始构建之前需要很长时间才能启动
- python - 从字典键操作元组中的数据
- r - 将值添加到向量,直到其总和在某个范围内
- git - 禁用 git local pulls 的压缩
- python - 如何在python中导入tesseract
- python - 安装了 virtualenv,但仍然收到“ModuleNotFoundError: No module named 'virtualenv'”错误
- javascript - 将 EasyAutocomplete 附加到输入框后,它失去焦点
- android - 未打开本机键盘时未调用 HostListener