Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java-使用字符串的动态转换_Java_Android_Cursor - Fatal编程技术网

java-使用字符串的动态转换

java-使用字符串的动态转换,java,android,cursor,Java,Android,Cursor,考虑一个sqlite数据库表DRINK,其中包含以下列:Name(字符串)、Description(字符串)、ResourceID(int) 现在,每当我想从某一行中获取某个内容时,在获得游标cur后,我必须执行以下操作: cur = db.query(...); String name = cur.getString(0); String desc = cur.getString(1); int desc = cur.getInt(0); 但是,这种逻辑非常依赖于我对数据库表模式的了解,我想

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

现在,每当我想从某一行中获取某个内容时,在获得
游标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
对游标不可用

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

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


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

调用,然后使用
switch
语句调用相应的
getXxx()
方法。

答对了!这正是我想要的,但我在这一行的文档中发现了一点混乱:`返回了列的首选类型,但数据可能会转换为get type方法中记录的其他类型,例如getInt(int)`,这意味着如果我们使用getInt(ResourceID),如果ResourceID是一个字符串,它会自动转换为int吗?@juztcode这意味着仅仅因为
getType(“ResourceID”)
返回一个值,表示该类型是整数,并不意味着必须调用
getInt()
。您仍然可以调用
getString()
getDouble()
,整数值将为您进行转换。在给定链接中遇到此int,什么是
字段类型\u BLOB
,文档只会说:
如果指定的列类型为BLOB
,则getType(int)返回的值。blob()是什么类型的值?@juztcode每种类型都有相应的getter方法,因此如果您查看
getBlob()
方法的文档,您可能会了解更多信息。