コンテンツプロバイダに関するチュートリアルに続き、特定のコードでbulkInsert
メソッドを使用してデータを挿入しました。また、Vector変数(cVVector
)を使用してContentValues
をすべて格納しました。言及されたObject []をContentValues []にキャストする際のエラー
コード:
if (cVVector.size() > 0) {
ContentValues[] cvArray = new ContentValues[cVVector.size()];
cVVector.toArray(cvArray);
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, cvArray);
}
その後、私はContentValues[]
にcVVector.toArray()
をキャストすることにより、コードを削減しようとしたが、私はエラーを取得しています。私が編集し
コード:私は取得しています
if (cVVector.size() > 0) {
mContext.getContentResolver().bulkInsert(WeatherEntry.CONTENT_URI, (ContentValues[]) cVVector.toArray());
}
エラー:
最後にFATAL EXCEPTION: AsyncTask #1
Process: com.example.thiago.sunshine, PID: 9848
java.lang.RuntimeException: An error occured while executing doInBackground()
...
Caused by: java.lang.ClassCastException: java.lang.Object[] cannot be cast to android.content.ContentValues[]
、私の質問は:私はObject[]
とContentValues[]
間の鋳造を行うことができないのはなぜ?
Obs:英語は母国語ではありません。間違いをお許しください。
多くの手助けをしました。私はキャスティングが自動的に配列を実行し、各オブジェクトを新しい配列にキャストすると思っていたので、混乱しました。しかし、あなたが言ったように、 'Object []'と 'ContentValues []'は異なる配列型であるため、私が行ったキャストは決して正しく動作しません。ありがとうございました! –