Hashmaps中的Nullpointer异常

时间:2015-12-14 20:38:04

标签: java

我正在尝试将产品添加到我的OrderLine(由订单持有),但是当我尝试时,我会获得NullPointerException

import java.util.*;
public class OrderLine;

private HashMap<Integer, Integer> products = new HashMap<Integer, Integer>();

//setter and getter for products

public void add(int productNbr, int amount) {
    int newAmount = this.products.get(productNbr) + amount;
    this.products.put(productNbr, newAmount);
}

我的主测试员;

public class Main {

public static void main(String[] args) {

OrderLine ol = new OrderLine();
ol.add(1, 661);
ol.add(1, 5); //key 1 should hold value 666
System.out.println(ol.getProducts()); //Should print out {1, 666}

但我得到的只是&#34;线程中的异常&#34;主要&#34;显示java.lang.NullPointerException&#34 ;. 如果我在添加任何内容之前定义/启动值,我觉得它有效,但我不应该每次都这样做。有什么想法吗?

更新:修正版;

public void add(int productNbr, int amount) {
    if (this.products.get(productNbr) != null) {
        int newAmount = this.products.get(productNbr) + amount;
        this.products.put(productNbr, newAmount);
    } else {
        this.products.put(productNbr, amount);
    }
}

0 个答案:

没有答案