java - динамическое c приведение с использованием строк - PullRequest
0 голосов
/ 11 апреля 2020

Рассмотрим таблицу базы данных sqlite DRINK со столбцами: 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);

Но это logi c зависит от моего знания схемы таблиц базы данных, и я бы хотел этого избежать. Я хотел бы сделать что-то вроде этого:

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

, но, как отмечено, getObject недоступен для курсора

, но при этом мне также требуется типы данных также сохраняются, то есть 1, хранящийся как integer в столбце ResourceID, не дает 1 instanceOf String=true, он должен давать 1 instanceOf int=true.

, так зачем мне сделать это? Если я могу это сделать, то я могу получить значения из базы данных в виде, подобном a для l oop, не беспокоясь о том, что находится в схеме, и предоставляя только ее длину.

Какими способами этого можно достичь или, по крайней мере, добиться аналогичного поведения.

1 Ответ

1 голос
/ 11 апреля 2020

Вызовите getType(), а затем используйте оператор switch для вызова соответствующего getXxx() метода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...