Java ArrayList#isEmpty()方法引发NullPointerException
我正在使用servlet创建一个购物车。我在一个.html文件中有一个表单,它将表单发送到我的servlet的post方法。以下是表格:Java ArrayList#isEmpty()方法引发NullPointerException,java,nullpointerexception,Java,Nullpointerexception,我正在使用servlet创建一个购物车。我在一个.html文件中有一个表单,它将表单发送到我的servlet的post方法。以下是表格: .HTML File <form action="Sess04" method="post"> <label> Nazwa: <input type="text" name="name&qu
.HTML File
<form action="Sess04" method="post">
<label>
Nazwa:
<input type="text" name="name">
</label><br>
<label>
Ilość:
<input type="number" name="quantity" min="1">
</label><br>
<label>
Cena:
<input type="number" name="price" step="0.01" min="0">
</label><br>
<label>
<input type="submit" value="Dodaj do koszyka">
</label>
</form>
.HTML文件
纳兹瓦:
国际劳工组织主席:
欧洲标准化委员会:
下面是我的servlet(doPost方法,doGet现在为空):
HttpSession sess=request.getSession();
List itemsList=(List)sess.getAttribute(“购物车”);
如果(itemsList.isEmpty()){← 这里是NullPointException
itemsList=新的ArrayList();
}
字符串名称=request.getParameter(“名称”);
int数量=Integer.parseInt(request.getParameter(“数量”);
double price=double.parseDouble(request.getParameter(“price”));
项目=新项目(名称、数量、价格);
项目列表。添加(项目);
sess.setAttribute(“购物车”,项目列表);
对于(int i=0;i而言,问题在于:
List<Item> itemsList = (List<Item>) sess.getAttribute("cart");
if (itemsList.isEmpty()) { ← Here NullPointException
itemsList = new ArrayList<>();
}
List itemsList=(List)sess.getAttribute(“购物车”);
如果(itemsList.isEmpty()){← 这里是NullPointException
itemsList=新的ArrayList();
}
您不想检查列表是否为空(重新初始化空列表也没用),而是想检查itemList是否为空
if (itemsList == null){
itemsList = new ArrayList<>();
}
if(itemsList==null){
itemsList=新的ArrayList();
}
现在,您正在对null调用isEmpty,这将导致NullPointerExcetion如果列表不存在,则该列表不是空的。基本上,您的isEmpty
检查应该是null
检查。
if (itemsList == null){
itemsList = new ArrayList<>();
}