java - 当从我的主类访问时,我的(正确的) HashMap 返回 null -(初学者)

标签 java null hashmap

public class Board {
    public HashMap<String, String> spelMap = new HashMap<String, String>();

    public String[] mapping =
        {
                ""+spelMap.get("A")+"-----------"+spelMap.get("B")+"-----------"+spelMap.get("C")+"", 
                "|           |           |",
                "|   "+spelMap.get("D")+"-------"+spelMap.get("E")+"-------"+spelMap.get("F")+"   |",
                "|   |       |       |   |",
                "|   |   "+spelMap.get("G")+"---"+spelMap.get("H")+"---"+spelMap.get("I")+"   |   |",
                "|   |   |       |   |   |",
                ""+spelMap.get("J")+"---"+spelMap.get("K")+"---"+spelMap.get("L")+"       "+spelMap.get("M")+"---"+spelMap.get("N")+"---"+spelMap.get("O")+"",
                "|   |   |       |   |   |",
                "|   |   "+spelMap.get("P")+"---"+spelMap.get("Q")+"---"+spelMap.get("R")+"   |   |",
                "|   |       |       |   |",
                "|   "+spelMap.get("S")+"-------"+spelMap.get("T")+"-------"+spelMap.get("U")+"   |",
                "|           |           |",
                ""+spelMap.get("V")+"-----------"+spelMap.get("W")+"-----------"+spelMap.get("X")+""
        };
    Board(){

        spelMap.put("A", ".");
        spelMap.put("B", ".");
        spelMap.put("C", ".");
        spelMap.put("D", ".");
        spelMap.put("E", ".");
        spelMap.put("F", ".");
        spelMap.put("G", ".");
        spelMap.put("H", ".");
        spelMap.put("I", ".");
        spelMap.put("J", ".");
        spelMap.put("K", ".");
        spelMap.put("L", ".");
        spelMap.put("M", ".");
        spelMap.put("N", ".");
        spelMap.put("O", ".");
        spelMap.put("P", ".");
        spelMap.put("Q", ".");
        spelMap.put("R", ".");
        spelMap.put("S", ".");
        spelMap.put("T", ".");
        spelMap.put("U", ".");
        spelMap.put("V", ".");
        spelMap.put("W", ".");
        spelMap.put("X", ".");
    }

//这是我的主类中用于访问 HashMap 的内容。

public static void main(String[] args) {
        Board bord = new Board();

        for(int i=0; i < bord.mapping.length; i++){
            System.out.println(bord.mapping[i]);
        }

//这是编译时返回的内容

null-----------null-----------null

|           |           |

|   null-------null-------null   |

|   |       |       |   |

|   |   null---null---null   |   |
|   |   |       |   |   |
null---null---null       null---null---null
|   |   |       |   |   |
|   |   null---null---null   |   |
|   |       |       |   |
|   null-------null-------null   |
|           |           |
null-----------null-----------null

最佳答案

您可以按如下方式更改代码。将 mapping 数组放入方法内。那么这将工作得很好。

public class Board {
public HashMap<String, String> spelMap = new HashMap<String, String>();

Board() {
    spelMap.put("A", ".");
    spelMap.put("B", ".");
    spelMap.put("C", ".");
    spelMap.put("D", ".");
    spelMap.put("E", ".");
    spelMap.put("F", ".");
    spelMap.put("G", ".");
    spelMap.put("H", ".");
    spelMap.put("I", ".");
    spelMap.put("J", ".");
    spelMap.put("K", ".");
    spelMap.put("L", ".");
    spelMap.put("M", ".");
    spelMap.put("N", ".");
    spelMap.put("O", ".");
    spelMap.put("P", ".");
    spelMap.put("Q", ".");
    spelMap.put("R", ".");
    spelMap.put("S", ".");
    spelMap.put("T", ".");
    spelMap.put("U", ".");
    spelMap.put("V", ".");
    spelMap.put("W", ".");
    spelMap.put("X", ".");

}

public String[] postMethod() {
    return new String[]
            {
                    "" + spelMap.get("A") + "-----------" + spelMap.get("B") + "-----------" + spelMap.get("C") + "",
                    "|           |           |",
                    "|   " + spelMap.get("D") + "-------" + spelMap.get("E") + "-------" + spelMap.get("F") + "   |",
                    "|   |       |       |   |",
                    "|   |   " + spelMap.get("G") + "---" + spelMap.get("H") + "---" + spelMap.get("I") + "   |   |",
                    "|   |   |       |   |   |",
                    "" + spelMap.get("J") + "---" + spelMap.get("K") + "---" + spelMap.get("L") + "       " + spelMap.get("M") + "---" + spelMap.get("N") + "---" + spelMap.get("O") + "",
                    "|   |   |       |   |   |",
                    "|   |   " + spelMap.get("P") + "---" + spelMap.get("Q") + "---" + spelMap.get("R") + "   |   |",
                    "|   |       |       |   |",
                    "|   " + spelMap.get("S") + "-------" + spelMap.get("T") + "-------" + spelMap.get("U") + "   |",
                    "|           |           |",
                    "" + spelMap.get("V") + "-----------" + spelMap.get("W") + "-----------" + spelMap.get("X") + ""
            };
    }

}

然后是主要主题

public static void main(String[] args) {
    Board bord = new Board();

    for(int i=0; i < bord.postMethod().length; i++){
        System.out.println(bord.postMethod()[i]);
    }
}

现在输出

.-----------.-----------.
|           |           |
|   .-------.-------.   |
|   |       |       |   |
|   |   .---.---.   |   |
|   |   |       |   |   |
.---.---.       .---.---.
|   |   |       |   |   |
|   |   .---.---.   |   |
|   |       |       |   |
|   .-------.-------.   |
|           |           |
.-----------.-----------.

在这种情况下,您的HashMap只能在初始化后访问。因此,HashMap 现在包含值。

关于java - 当从我的主类访问时,我的(正确的) HashMap 返回 null -(初学者),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20949439/

相关文章:

java - 是否有在 IntelliJ 中使用 system.out.println 包装语句的快捷方式

objective-c - Objective-C 中 Nil 与 nil 和 Null 的区别

java - 如何打印特定Hashmap键的所有值

c# - 字段依赖属性

ios:将 NSString 与 "<null>"进行比较无效

c++ - 使用 boost 序列化库序列化 stdext::hash_map

java - 计算非素数

java - 将 Epinions 数据集与 Moletrust 推荐系统结合使用

java - DynamoDB 注释使用混合类型列表反序列化文档 JSON?

java - 多线程 GAE 应用程序需要同步吗?