Android开发:如何解决RecyclerView.Adapter泛型类原始使用警告?
解决RecyclerView.Adapter原始类型使用警告的问题
这个警告是因为RecyclerView.Adapter是泛型类,你直接使用了它的原始类型(未指定泛型参数),编译器会提示这种不规范用法。以下是两种针对性的解决办法:
情况1:两个Adapter的ViewHolder类型相同
如果adapter1和adapter2都继承自同一个自定义ViewHolder的Adapter(比如RecyclerView.Adapter<MyCustomViewHolder>),直接给变量指定明确的泛型类型即可:
RecyclerView.Adapter<MyCustomViewHolder> adapter; if(condition) { adapter = adapter1; } else { adapter = adapter2; } recyclerView.setAdapter(adapter);
情况2:两个Adapter的ViewHolder类型不同
如果两个Adapter使用不同的ViewHolder子类,用通配符? extends RecyclerView.ViewHolder兼容所有ViewHolder子类即可,这完全符合recyclerView.setAdapter()的参数要求:
RecyclerView.Adapter<? extends RecyclerView.ViewHolder> adapter; if(condition) { adapter = adapter1; } else { adapter = adapter2; } recyclerView.setAdapter(adapter);
补充说明
虽然原始类型的代码能正常运行,但泛型的核心作用是编译期类型检查,可避免潜在的类型转换异常。规范使用泛型能让代码更健壮、可读性更强,也符合Android开发的最佳实践。
内容的提问来源于stack exchange,提问作者T LABS
相关产品推荐
相关产品推荐

