В моем проекте Android я создал абстрактный класс AsyncTask, в который я ввожу URL-адрес и, при необходимости, информацию подкачки, поэтому мне не нужно писать материал HTTP и т. д.Java как обрабатывать «Unchecked cast» для Array <MyItem> от Object
Я сделал абстрактный метод, onAsyncTaskResult (Object o), который должен быть реализован при использовании. Однако при заливке его к соответствующему объекту (может быть разных типов) интегрированная среда дает мне предупреждение
"Unchecked cast for java.lang.Object to java.util.ArrayList<com.company.package.subpackage.MyItem>"
Вот мой фрагмент кода из РЕАЛИЗАЦИЯ указанной функции
new SuperCoolAsyncTask() {
@Override
protected void onAsyncTaskResult(Object o) {
if(o instanceof ArrayList) {
//generates warning in the following line
AppConstants.scoreStatistics = (ArrayList<MyItem>)o;
}
}
}.execute(get_url_score_statistics());
Как Я должен бросить это на ArrayList<MyItem>
без предупреждения?
Без <MyItem>
декларации он бросает «Unchecked задание»
Вы можете использовать только 'ArrayList', но не' ArrayList '. Это связано с тем, что к моменту компиляции кода каждая ссылка на' MyItem' теряется и заменяется ссылкой на 'Object'. –
Спасибо Мика, отличное объяснение! – Rae