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

Java提示HashMap的put、get方法不存在的原因是什么?

你遇到的语法错误核心原因是Java语法规定可执行语句不能直接放置在类的成员定义区域,仅能写在方法、构造方法、代码块三类结构内部。你代码中所有的map.put()、map.get()调用都属于可执行语句,直接写在类体中不符合语法规范,因此编译器会抛出不符合预期的语法提示。

正确的写法可以将HashMap初始化逻辑放入构造方法、main方法或代码块中,参考修正后的可运行代码如下:

import java.util.*;

@SuppressWarnings("unchecked")
public class HashMapForFinal {
    // 类成员区域仅允许定义变量、初始化成员属性
    public HashMap<String, HashMap<Integer, Integer>> map = new HashMap<>();
    Random rand = new Random();
    int randomInt = rand.nextInt(7);

    // 将初始化逻辑放入构造方法,类实例化时自动执行
    public HashMapForFinal() {
        map.put("correct", new HashMap<>());
        map.get("correct").put(1, 1);
        map.get("correct").put(2, 2);
        map.get("correct").put(3, 3);
        map.get("correct").put(4, 4);
        map.get("correct").put(5, 5);
        map.get("correct").put(6, 6);

        map.put("incorrect1", new HashMap<>());
        map.get("incorrect1").put(1, 6);
        map.get("incorrect1").put(2, 5);
        map.get("incorrect1").put(3, 4);
        map.get("incorrect1").put(4, 3);
        map.get("incorrect1").put(5, 2);
        map.get("incorrect1").put(6, 1);
        
        map.put("incorrect2", new HashMap<>());
        map.get("incorrect2").put(1, randomInt);
        map.get("incorrect2").put(2, randomInt);
        map.get("incorrect2").put(3, randomInt);
        map.get("incorrect2").put(4, randomInt);
        map.get("incorrect2").put(5, randomInt);
        map.get("incorrect2").put(6, randomInt);
    }

    // 测试运行入口
    public static void main(String[] args) {
        HashMapForFinal projectInstance = new HashMapForFinal();
        // 测试功能是否正常
        System.out.println("correct分组key=3的值:" + projectInstance.map.get("correct").get(3));
        System.out.println("incorrect1分组key=3的值:" + projectInstance.map.get("incorrect1").get(3));
        System.out.println("incorrect2分组的随机值:" + projectInstance.map.get("incorrect2").get(1));
    }
}

如果不需要复用初始化逻辑,也可以选择把所有可执行语句直接写到main方法内部,或是用大括号包裹原来的可执行语句做成非静态初始化块,都可以解决语法报错问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:36:04