来自非null值的Java NullException
当我试图填充映射时,我不明白为什么Java会给我一个NullPointerException来自非null值的Java NullException,java,exception,maps,Java,Exception,Maps,当我试图填充映射时,我不明白为什么Java会给我一个NullPointerException public class ResultsClass extends Class2 { private Map<String,Object> result_map; public ResultsClass(Object o){ this.results = o; System.out.println(this.results.somemeth
public class ResultsClass extends Class2 {
private Map<String,Object> result_map;
public ResultsClass(Object o){
this.results = o;
System.out.println(this.results.somemethod().isEmpty());
fill_results();
}
private void fill_results(){
System.out.println(this.results.somemethod.isEmpty());
result_map.put("ID",this.results.somemethod());
}
public static void main(String[] args) throws Exception{
ResultsClass results = new ResultsClass(Object);
}
}
我也有同样的例外。是否有其他类型的映射我应该使用,可以有不同的键值类型
编辑:
哇,你们太苛刻了。我不知道maps必须声明为这样的类。我是新来的,我没有想到。谢谢你的快速回答 您需要实例化(“创建”)映射-例如:
private Map<String, Object> result_map = new HashMap<String, Object> ();
private-Map-result\u-Map=new-HashMap();
在执行此操作之前,
result\u map
为空(不引用有效对象),无法使用。您没有创建映射;因此,您不能使用结果映射,因为它为空。您尚未使用new关键字初始化映射。您需要了解如何调试NullPointerException。您应该检查抛出NPE的行上的每个变量,以查看哪个变量为空。如果您这样做了,那么您就知道您的Map变量为null,您就不必在这里提问了。这是一个重要的概念,如果你想进步,你必须学习它,它比你问题的细节更重要。哦,谢谢,我不是想学习,我只是逐行输入每一段代码并发布在这里。我喜欢被人轻视,所以这对我来说是最好的情况。对不起。我不是有意贬低,甚至不是故意显得贬低。我想传达的唯一一点是,解决NPE的过程是这里的关键,这个过程比解决您当前问题的方法重要得多,因为一旦学会了,大多数NPE解决方案对您来说几乎是微不足道的。我刚开始使用Java,这是我第一次使用map。我有一些以前从未见过的代码,我甚至不是一个计算机程序员。但我必须完成这件事。我试着输出我认为NULL的东西,但我甚至没有考虑过地图本身,因为我没有意识到它是非原始类型。
private Map<String, Object> result_map = new HashMap<String, Object> ();