gpt4 book ai didi

java - HashMap 中的工厂方法对象存在访问问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:51 26 4
gpt4 key购买 nike

我的编译器语法有问题,希望此方法适用于 Hashmap 对象 myMap。我需要 Add 方法获取一个 String 值并使用 Hashmap put 函数添加一个 (key,值)对。

我试图将 newMap 的工厂方法初始化放在 main 中,但遇到了访问问题。

 import java.util.*;

public class MyMap {

public static String item;
public static String brand;

Map<String, String> myMap = newMap();

public static void main(String[] args) {

myMap.Add("apple");

}

public static HashMap<String, String> newMap() {
return new HashMap<>();
}

public static void Add(String item) {
String brand = "nobrand";
myMap.put(item, brand);
}


}

由于静态/非静态项导致的编译错误。我将它们全部设为静态,以便全类都可以访问所有内容。

最佳答案

你有两个错误:

首先你应该使 myMap 像这样静态化:

static Map<String, String> myMap = newMap();

其次,您应该将 myMap.Add("apple"); 更改为 Add("apple"); 因为您为主类编写了一个方法,而不是为 HashMap 您希望这样调用它,而且 Add 方法是静态的并且可以访问 myMap

总类(class)是这样的:

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

public class Test {

public static String item;
public static String brand;

static Map<String, String> myMap = newMap();

public static void main(String[] args) {

Add("apple");

}

public static HashMap<String, String> newMap() {
return new HashMap<>();
}

public static void Add(String item) {
String brand = "nobrand";
myMap.put(item, brand);
}

}

关于java - HashMap 中的工厂方法对象存在访问问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53860216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com