Arraylist: использует непроверенные или небезопасные операции

У меня есть два предупреждения в моем приложении, которые не позволяют мне использовать "непроверенные или небезопасные операции". Я пытался понять другие сообщения, но я вообще не понимаю, что происходит, поэтому я все еще на начальном этапе...

Один в моем классе Адаптера (предупреждение в "(ArrayList) results.values"):

arrayList = (ArrayList<Sound>) results.values;

введите описание изображения здесь

И еще один в моей деятельности, где я использую arraylist (предупреждение на "Collections.sort"):

        Collections.sort(names);

введите описание изображения здесь

Можете ли вы объяснить мне, что это значит и как это решить, пожалуйста?

Спасибо за вашу помощь.

1 ответ

Тип results.values по-видимому Objectтак что приведу его к ArrayList<Sound> опасно, так как его тип во время выполнения может быть несовместим с этим типом. Если result.values всегда ArrayList<Sound> и у вас есть возможность изменить его тип, а затем просто изменить его на ArrayList<Sound>, Если у вас абсолютно нет возможности изменить тип, и вы абсолютно уверены, что приведение будет действительным во время выполнения, тогда вы можете добавить @SuppressWarnings("unchecked") выше этой линии, чтобы подавить предупреждение.

Я не знаю, какой тип names в вашем отрывке, но вполне вероятно, что его compareTo() Метод имеет небезопасное приведение из-за недостаточного указания типа параметра. Ищите проблему, похожую на этот вопрос.

Другие вопросы по тегам