У меня есть таблица фильмов, в которой много столбцов и класс, который представляет таблицу с одинаковыми типами столбцов/полей в одном порядке (один int для id и все остальные строки) I есть этот код, который пытается вставить запись о фильме из объекта movie
в базу данных. У меня проблема, которая говорит, что метод put
не может взять эту группу или аргументы (String, capture#2-of ?)
есть что-нибудь лучше или немного хуже, чем для решения моей проблемы? EDIT:
Можете ли вы объяснить мне, почему я ошибаюсь?Динамический листинг из пользовательского объекта в строку sqlite
ContentValues contentValues = new ContentValues();
Field[] fields = movie.getClass().getFields();
for(int i = 0; i < fields.length; i++)
{
contentValues.put(allColumns[i], fields[i].getType().cast(fields[i].get(movie)));
}
Из документации ['Class.cast (Object)'] (http://developer.android.com/reference/java/lang/Class.html#cast (java.lang.Object)) параметризован и должен возвращаться экземпляр класса. Затем ['Field.getType()'] (http://developer.android.com/reference/java/lang/reflect/Field.html#getType()) возвращает класс >. Я думаю, что здесь указан параметр ** > **. – nicopico
Да, ваше право, в этом случае это было бы выведено из задания, но поскольку его не назначенный ContentValues не может понять, какую перегрузку использовать, я обновлю ответ, спасибо за указание, что вне этого –
На самом деле поцарапайте свой последний комментарий, Field.getType() возвращает >, и ему нужно передать значение Field.getType() целевому типу перед вызовом –