簡體   English   中英

Java HashMaps為什么會返回null?

[英]Java HashMaps why does this return null?

我設置了一個測試jar應用程序來為我的其他程序運行,我已經為此工作了幾個小時,但我找不到它返回null的原因。 感謝您的幫助!

hashy.java

import java.util.HashMap;

public class hashy {

private static HashMap<String, Integer> targets = new HashMap<String, Integer>();

public static void main(String[] args) {
    Hashymashy mash = new Hashymashy();
    mash.hashyMash();
    String name = "Bobby";
    int num = 10;

    targets.put(name, num);

    if (targets.containsKey(name) == true) {
        System.out.println("It contains a key!");
    } else {
        System.out.println("It does not contain a key!");
    }
    if (targets.containsValue(num) == true) {
        System.out.println("It contains a value");
    } else {
        System.out.println("It does not contain a value!");
    }
}
public HashMap<String,Integer> getTargets(){
    return targets;
}
}

Hashymashy.java

 public class Hashymashy {

public void hashyMash(){
    hashy h = new hashy();
    String name = "Bobby";
    Integer fnum = h.getTargets().get(name);

    System.out.println("Number is "+fnum+"!");
}
}

您試圖將與“ Bobby”相關的值添加到HashMap

mash.hashyMash();

targets.put(name, num);之前被調用targets.put(name, num); ,所以

Integer fnum = h.getTargets().get("Bobby");

將返回null ,因為沒有"Bobby"

PS:似乎是一個不好的設計給我,因為Hashymashy類創建的實例hashy類和反之亦然。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM