Android:使用未检查或不安全的操作



我在构建项目时收到了此消息:

... listAdapter myadapter.java:

使用未检查或不安全的操作。

用-xlint重新编译:未选中以获取详细信息。

这种代码的行为发生:

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

我不知道该怎么办。

那是因为您正在铸造通用类型,而且编译器不知道此铸件是否合法。如果您的results.values不是ArrayList的实例,则此代码线将在ClastCastException中失败。但是,如果是的话,编译器会施放值,但是它无法检查什么类型的通用参数是什么,并且如果您的变量将arraylist保存在内部的字符串中,则您的代码行将不会失败,但它将在另一个方面失败,您从列表中阅读的地方。如果您100%确定它将是BEAN的阵列列表,则可以抑制此警告(通过用@SuppressWarnings("unchecked")

注释该方法

您可以尝试使用try catch方法来捕获excepcion,也可以为此问题创建一个新的excepion,因为它可以创建一个扩展异常的类,您可以阅读有关更多信息它在这里:如何创建自定义异常。

最新更新