Android: использует непроверенные или небезопасные операции
Я получаю это сообщение при создании моего проекта:
... \ listadapter \ MyAdapter.java:
использует непроверенные или небезопасные операции.
Перекомпилировать с -Xlint: не проверено для деталей.
Это происходит для следующих строк кода:
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
beanList = (ArrayList<Bean>) results.values;
notifyDataSetChanged();
}
Я понятия не имею, что делать.
2 ответа
Это потому, что вы приводите к обобщенному типу, а компилятор не знает, допустимо ли это приведение. Если твой results.values
не является экземпляром ArrayList, эта строка кода завершится с ошибкой ClastCastException. Но если это так, компилятор будет приводить значение, но он не может проверить, какой тип универсального параметра, и если ваша переменная содержит ArrayList со строками внутри, ваша строка кода не потерпит неудачу, но это будет на другом где вы читаете из списка. Если вы на 100% уверены, что это будет ArrayList of Bean, вы можете просто отключить это предупреждение (пометив метод с помощью @SupressWarnings("unchecked")
Вы можете попробовать использовать метод try catch, перехватывающий Excepcion, или вы можете создать новый Excepion для этой проблемы, для него вы можете создать класс, который расширяет Exception, вы можете прочитать больше об этом здесь: Как создать собственное Exception.