Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';t在另一个方法中检索HashMap输入_Java_Collections_Map_Hashmap - Fatal编程技术网

Java Can';t在另一个方法中检索HashMap输入

Java Can';t在另一个方法中检索HashMap输入,java,collections,map,hashmap,Java,Collections,Map,Hashmap,我有个小问题,我想不出来 我在HashMap中使用了一个超类(SetupFunctions)--> 在相同的方法中,我添加了一些sysout,只是为了看看发生了什么: System.out.println(map.containsKey(1)); System.out.println(map.size()); 正如预期的那样,它打印的是True和1。。。但是当我离开这个方法(方法执行结束)并返回到main方法时,同一个sysout打印False和0 我想知道为什么我的hashmap是空的或正在

我有个小问题,我想不出来

我在HashMap中使用了一个超类(SetupFunctions)-->

在相同的方法中,我添加了一些sysout,只是为了看看发生了什么:

System.out.println(map.containsKey(1));
System.out.println(map.size());
正如预期的那样,它打印的是True和1。。。但是当我离开这个方法(方法执行结束)并返回到main方法时,同一个sysout打印False和0


我想知道为什么我的hashmap是空的或正在重置。。。不该发生的事。。。我说得对吗?

使用提供的信息很难说到底发生了什么。但是您可能正在使用两个不同的名为
Map
HashMap
,一个在方法内部,另一个在方法外部


我认为您有两个(可能更多)变量名为
Map
——一个是类的成员,另一个是驱动程序类的元素(即声明主方法的类)或主方法本身内部的变量。

Map
静态访问还是动态访问?这是您的main可以正确访问它的唯一方法。确保没有可能使编译器混淆的重复变量
Map


如果您可以在这里发布代码,那将是最好的。

您的
Map
变量位于哪里?main方法和将MyClass放入映射的方法真的使用了相同的变量吗?你能不能制作一个显示相同行为的简短代码,这样你和我们就可以知道发生了什么?如果你发布maim代码和其他方法,这会很有帮助哦,我想我编辑了这个问题,但我找到了解决方案。我正在调试,发现填充HashMap的方法是由非静态istance(object I=new object())调用的。当实例完成时,它会调用HashMap。。所以我改变了呼叫代码,现在它就像一个符咒。这些人!
MyClass m = new MyClass (car1, var2, var3, var4, var5);
map.put(getCenarioID(), m);    
System.out.println(map.containsKey(1));
System.out.println(map.size());