You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 04:32:35