我正在尝试将产品添加到我的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);
}
}