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

Android应用启动崩溃报错User cannot be cast to java.util.List如何解决

问题原因
  • 崩溃的直接原因是构造HarryAdapter时参数类型不匹配:HarryAdapter的第二个入参要求是List<User>类型的集合,你却传入了单个User对象user,还强行做了类型转换,User类和List接口没有继承实现关系,运行时必然抛出ClassCastException,也就是你看到的User cannot be cast to java.util.List错误。
  • 代码中还存在一处语法错误:List<User> arr=new<User>ArrayList();的泛型写法不符合Java规范,正确的写法是new ArrayList<User>()。
解决方案

修正两处代码即可:修改ArrayList初始化语句,同时给适配器传入已经构建好的List<User>集合对象arr,而不是单个User实例。

修正后的核心代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mylist=findViewById(R.id.list);
    User user=new User();
    user.setF_name("ali");
    user.setF_pic(R.drawable.ora);
    // 修正ArrayList初始化的泛型写法
    List<User> arr=new ArrayList<User>();
    arr.add(user);
    // 传入已添加user的集合arr,删除错误的强制类型转换
    HarryAdapter ad=new HarryAdapter(this, arr);
    mylist.setAdapter(ad);
}

内容的提问来源于stack exchange,提问作者Mubashar Ali

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:18:04