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

Java代码调用getLojas()无返回结果,无语法错误求排查

问题分析与解决方案

首先,先把你的代码格式化出来,方便查看:

public class ListaLojas { 
    private HashMap<String, Loja> lojas; 
    TreeMap<Integer, Loja> copy = new TreeMap<>(Collections.reverseOrder()); 

    public ListaLojas(){ 
        lojas = new HashMap<>(); 
    } 

    public HashMap getLojas(){ 
        return lojas; 
    } 
} 

public class Aplicacao{ 
    public static void main(String[] args) { 
        ListaLojas listL = new ListaLojas(); 
        listL.putLoja("loja1", l1); 
        listL.putLoja("loja2", l2); 
        listL.putLoja("loja3", l3); 
        listL.putLoja("loja4", l4); 
        listL.putLoja("loja5", l5); 
        listL.putLoja("loja6", l6); 
        listL.getLojas(); 
    } 
}

你遇到的核心问题很明确:你只是调用了getLojas()方法,但没有对返回的结果做任何输出操作,所以控制台自然不会显示任何内容。下面给你具体的解决步骤和优化建议:

1. 输出返回的集合内容

要看到getLojas()的返回结果,你需要在main方法里把返回的HashMap打印出来。比如修改main方法:

public static void main(String[] args) { 
    ListaLojas listL = new ListaLojas(); 
    // 假设l1到l6是已经初始化好的Loja对象
    listL.putLoja("loja1", l1); 
    listL.putLoja("loja2", l2); 
    listL.putLoja("loja3", l3); 
    listL.putLoja("loja4", l4); 
    listL.putLoja("loja5", l5); 
    listL.putLoja("loja6", l6); 

    // 方式1:直接打印整个HashMap
    System.out.println("所有店铺集合: " + listL.getLojas());

    // 方式2:遍历集合,逐个打印键值对(更清晰)
    HashMap<String, Loja> lojasMap = listL.getLojas();
    for (Map.Entry<String, Loja> entry : lojasMap.entrySet()) {
        System.out.println("店铺ID: " + entry.getKey() + ", 店铺信息: " + entry.getValue());
    }
}

这样运行后,控制台就会显示lojas集合里的所有内容了。

2. 补充潜在的缺失代码

你在main里调用了putLoja方法,但原ListaLojas类里没有这个方法的实现(你说代码无语法错误,应该是省略了),需要补充这个方法才能正确存入数据:

public class ListaLojas { 
    // ... 原有代码 ...

    // 补充putLoja方法
    public void putLoja(String key, Loja loja) {
        lojas.put(key, loja);
    }
}

3. 优化代码的封装性与规范性

  • getLojas()方法当前返回的是内部HashMap的原始引用,外部可以直接修改这个集合的内容,破坏类的封装性。建议返回不可修改的视图:
    public Map<String, Loja> getLojas(){ 
        return Collections.unmodifiableMap(lojas); 
    }
    
  • 返回类型改用Map<String, Loja>接口而非具体的HashMap,符合面向接口编程的原则,后续如果更换集合实现类也更灵活。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:03:18