[英]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.