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()
Метод имеет небезопасное приведение из-за недостаточного указания типа параметра. Ищите проблему, похожую на этот вопрос.