Android: использует непроверенные или небезопасные операции - PullRequest
0 голосов
/ 27 февраля 2019

При создании проекта я получаю это сообщение:

... \ listadapter \ MyAdapter.java:

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

Перекомпилируйте с -Xlint: не проверено для подробностей.

Это происходит для следующих строк кода:

@Override
    protected void publishResults(CharSequence constraint, FilterResults results) {
        beanList = (ArrayList<Bean>) results.values;
        notifyDataSetChanged();
    }

Понятия не имею, что делать.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это потому, что вы приводите к обобщенному типу, а компилятор не знает, допустимо ли это приведение.Если ваш results.values не является экземпляром ArrayList, эта строка кода завершится с ошибкой ClastCastException.Но если это так, компилятор будет приводить значение, но он не может проверить, какой тип универсального параметра, и если ваша переменная содержит ArrayList со строками внутри, ваша строка кода не потерпит неудачу, но это будет на другомгде вы читаете из списка.Если вы на 100% уверены, что это будет ArrayList of Bean, вы можете просто отключить это предупреждение (пометив метод с помощью @SupressWarnings("unchecked")

0 голосов
/ 27 февраля 2019

Вы можете попробовать использовать метод try catch, перехватывающий Excepcion, или вы можете создать новый Excepion для этой задачи, для него вы можете создать класс, который расширяет Exception, вы можете прочитать об этом здесь: Каксоздать пользовательское исключение .

...