Java 未解析的符号

Java unresolved symbol

我希望这是一个令人头疼的问题,"duh",这个问题很容易回答,但我是新手,无法弄明白。我只是想定义一个 HashMap 并用 "put" 方法初始化它,但是我的 IDE (Intellij) 在 "put" 上给我 "can't resolve symbol" 错误。我在下面创建了一个尽可能简单的示例。开始拍脑袋了。

package CSRLogin.NewAccount;

import java.util.HashMap;
import java.util.Map;

public class MapTest {

    Map<String, String> myMap = new HashMap<String, String>();
    myMap.put("A", "B");
}

将您的代码放在某种代码块中,例如方法或构造函数:

public class MapTest {
    // Constructor
    public MapTest() {
        Map<String, String> myMap = new HashMap<String, String>();
        myMap.put("A", "B");
    }

    // main-method
    public static void main(String[] args) {
        Map<String, String> myMap = new HashMap<String, String>();
        myMap.put("A", "B");
    }
}

如果您希望将地图存储为实例变量,您可以执行以下操作(如果使用构造函数):

public class MapTest {
    private Map<String, String> myMap = new HashMap<String, String>();

    // Constructor
    public MapTest() {
        myMap.put("A", "B");
    }
}

另一种方法是使用静态变量来保存数据。然后你也可以像这样使用静态初始化器:

public class MapTest {
    static Map<String, String> myMap = new HashMap<String, String>();

    {
        myMap.put("A", "B");
    }
}

然后您将必须通过 class 名称访问地图:

int size = MapTest.myMap.size();

有关详细信息,请参阅以下资源: