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

在FetchStockApi类中调用ArrayList的add()方法报无法解析符号错误

解决“Cannot resolve symbol 'add'”编译错误

错误原因

你在FetchStockApi类的类级别代码块里直接调用listModels.add()方法,这违反了Java语法规则:类中只能定义成员变量,所有执行性代码(比如集合添加元素)必须放在构造函数、普通方法或者初始化块中,不能直接暴露在类作用域下。

修正方案

把添加元素的逻辑放到FetchStockApi的构造函数里,创建类实例时会自动初始化集合数据:

修改后的FetchStockApi.java代码:

package com.example.stockapipractice2;
import java.util.ArrayList;

public class FetchStockApi {

    ArrayList<suggestListModel> listModels = new ArrayList<>();

    // 构造函数,初始化集合数据
    public FetchStockApi() {
        String stockName = "Nifty 50";
        String stockSymbol = "NFTY";
        String exchange = "NSI";
        String type = "Index";
        suggestListModel suggestListModel = new suggestListModel(stockName, stockSymbol, exchange, type);
        listModels.add(suggestListModel);
    }
}

额外优化点

  1. 原代码里FetchStockApi继承AppCompatActivity完全多余,它只是数据处理类,不需要继承Activity,直接去掉即可。
  2. 变量名遵循小驼峰命名规范(比如把SuggestListModel改成suggestListModel),符合Java编码习惯。
  3. 如果后续要做网络请求获取真实股票数据,记得把请求逻辑放到异步线程(比如用Coroutine、OkHttp异步回调),避免阻塞主线程导致ANR。

验证

修改后,MainActivity里的代码无需改动,创建FetchStockApi实例时,构造函数会自动初始化listModels集合,适配器就能正常拿到数据并渲染RecyclerView了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 11:42:34