【问题标题】:Populate HashMap Failure [closed]填充HashMap失败[关闭]
【发布时间】:2018-07-12 02:08:53
【问题描述】:

我正在尝试在 Java 中创建一个 HashMap 并使用 .put() 方法填充它。日食的反射让我很困惑。

一开始我用下面的方式初始化了HashMap,但是似乎.put()对于hashMap对象是不可访问的。

public class NewMap {
    Map<Integer, String> hashMap = new HashMap<>();
    hashMap.put(10, "Amir");
    hashMap.put(20, "Bob");
}

然后我尝试添加一对大括号,它可以工作。

public class NewMap {
    Map<Integer, String> hashMap = new HashMap<>();
    {
        hashMap.put(10, "Amir");
        hashMap.put(20, "Bob");
    }
}

我试图弄清楚它背后的机制,但失败了。所有相关类均已正确导入。任何人都可以阐明它吗?

【问题讨论】:

  • 您的代码需要在一个块中,因此后者编译的原因。
  • 您只能在代码块中初始化一个类字段。代码块在 { ...} 内。它可以是一个方法或构造函数,也可以像你一样在 { ... } 内。

标签: java hashmap


【解决方案1】:

你所做的是一个方法调用,它只能在一个块内完成。

类有状态和行为。行为是指您的班级可以执行的某个动作或某些活动。由字段维护的状态。类中块“{}”的外部区域用于状态声明,“{}”用于行为。

例如, 您定义任何函数并在初始化哈希图的地方调用它。 你会得到低于运行时错误, "无效的方法声明;返回类型需要method();"

【讨论】:

    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 2013-12-19
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 2018-05-15
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多