Java Can';t在另一个方法中检索HashMap输入
我有个小问题,我想不出来 我在HashMap中使用了一个超类(SetupFunctions)--> 在相同的方法中,我添加了一些sysout,只是为了看看发生了什么: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是空的或正在
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());