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

从List<OrmeauModel>提取经纬度到新ArrayList遇空列表问题

问题排查:提取经纬度后ArrayList为空的原因

以下是几个最可能导致你遇到这个问题的简单错误,逐一排查:

  • ormeauList本身是空的
    循环遍历的前提是ormeauList包含元素,如果这个列表未初始化、或是还没被填充数据(比如异步加载任务还没完成),循环根本不会执行,markerArrayList自然是空的。可以在遍历前加个验证:

    if (ormeauList == null || ormeauList.isEmpty()) {
        System.out.println("ormeauList为空,无法提取经纬度");
        return;
    }
    
  • 全局变量被意外覆盖或重置
    你声明了全局的markerArrayList,但又在局部执行markerArrayList = new ArrayList<>(),如果后续你操作的是另一个同名局部变量,或者其他代码把全局变量重新赋值为null,就会出现“明明执行了添加但列表为空”的情况。检查代码中是否有其他地方修改了这个全局变量,确保你后续访问的是同一个实例。

  • 遍历代码根本没被执行
    比如这段遍历逻辑被放在了某个条件分支里(比如if判断不满足),或者在异步任务中(比如网络请求回调还没触发就去访问列表),导致代码没跑起来,列表自然为空。可以在循环里加个打印语句,确认是否进入了循环:

    for (OrmeauModel model : ormeauList) {
        System.out.println("正在处理元素:" + model.getMarker_id());
        double markerLat = model.getMarker_lat();
        double markerLong = model.getMarker_long();
        LatLng latLong = new LatLng(markerLat, markerLong);
        markerArrayList.add(latLong);
    }
    
  • getter方法存在隐藏问题
    虽然你贴了构造方法,但如果getMarker_lat()或getMarker_long()的实现有误(比如返回的是默认值、或者写错了变量名),不会导致列表为空,但可能让你误以为列表是空的(比如打印时没显示有效坐标)。可以检查getter的具体实现,确保它们正确返回了this.marker_lat和this.marker_long。


修正后的示例代码

// 全局变量
ArrayList<LatLng> markerArrayList;

public void processOrmeauData(List<OrmeauModel> ormeauList) {
    // 先验证数据源
    if (ormeauList == null || ormeauList.isEmpty()) {
        System.out.println("数据源无效,跳过处理");
        return;
    }

    // 初始化全局列表,避免重复创建或残留旧数据
    if (markerArrayList == null) {
        markerArrayList = new ArrayList<>();
    } else {
        markerArrayList.clear();
    }

    // 遍历填充坐标
    for (OrmeauModel model : ormeauList) {
        double lat = model.getMarker_lat();
        double lng = model.getMarker_long();
        markerArrayList.add(new LatLng(lat, lng));
    }

    // 验证结果
    System.out.println("处理完成,共提取" + markerArrayList.size() + "个坐标");
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:52:43